Kyl*_*J V 5 asp.net-core ocelot
我正在尝试组合一个 API 网关,该网关也可用于混合对多个 API 的调用。我还希望拥有自动生成的 Swagger,因此我希望结合 Ocelot 的授权和速率限制功能,但也希望能够在 .NET 代码中创建边缘自定义 API 来处理 API 调用的翻译和组合。
Ocelot 可以做到这一点吗?有什么例子吗?Ocelot 是否只能作为单独的应用程序与下游 API 一起使用?我试图避免仅针对混搭和复合 API 调用而存在的额外跳跃。
小智 8
这是如何在同一个 NET6 应用程序中将控制器与 Ocelot 一起使用的示例。
来自程序.cs
using Ocelot.DependencyInjection;
using Ocelot.Middleware;
var builder = WebApplication.CreateBuilder(args);
builder.Configuration.AddJsonFile("ocelot.json");
builder.Services.AddControllersWithViews();
builder.Services.AddOcelot();
var app = builder.Build();
app.UseStaticFiles();
app.UseRouting();
app.UseEndpoints(endpoints => {
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
app.UseOcelot().Wait();
app.Run();
Run Code Online (Sandbox Code Playgroud)
您还可以为此控制器添加 Swagger:
using Ocelot.DependencyInjection;
using Ocelot.Middleware;
var builder = WebApplication.CreateBuilder(args);
builder.Configuration.AddJsonFile("ocelot.json");
builder.Services.AddSwaggerGen();
builder.Services.AddControllersWithViews();
builder.Services.AddOcelot();
var app = builder.Build();
app.UseStaticFiles();
app.UseRouting();
app.UseSwagger();
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "v1");
});
app.UseEndpoints(endpoints => {
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
app.UseOcelot().Wait();
app.Run();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3443 次 |
| 最近记录: |