如何解决Ocelot 网关不想应用微服务路由
将单体应用程序分成几个微服务,现在我对如何一起运行它们很感兴趣。 所以,我正在为此构建豹猫网关。还有一些问题。
我尝试将一个简单的微服务与主 API 链接起来。如果我转到网关路由并查询我的微服务 => 我会得到 404。但是,如果我转到该微服务的 uri 我会得到信息。
Ocelot.json / ocelot.Development.json
{
"Routes": [
{
"DownstreamHostAndPorts": [
{
"Host": "localhost","Port": 7001
}
],"DownstreamPathTemplate": "/order","DownstreamScheme": "https","UpstreamPathTemplate": "/order","UpstreamHttpMethod": [ "GET" ]
}
],"GlobalConfiguration": {
"BaseUrl": "https://localhost:5001"
}
}
程序:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseSerilog((hostingContext,loggerConfiguration) =>
{
loggerConfiguration.ReadFrom
.Configuration(hostingContext.Configuration);
})
.ConfigureWebHostDefaults(webBuilder =>
{
var environment = Environment.GetEnvironmentvariable("ASPNETCORE_ENVIRONMENT");
webBuilder.ConfigureAppConfiguration(config =>
{
config
.AddJsonFile("ocelot.json")
.AddJsonFile($"ocelot.{environment}.json");
});
webBuilder.UseStartup<Startup>();
});
启动:
public void Configure(IApplicationBuilder app,IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseRouting();
app.UseAuthorization();
app.UseAuthentication();
app.UseSerilogRequestLogging();
app.UseCors(_AllowSpecificOrigin);
app.UseSwagger(options =>
{
options.SerializeAsV2 = true;
});
app.UseSwaggerUI(options =>
{
options.SwaggerEndpoint("/swagger/v1/swagger.json","ShoppingCart API");
options.RoutePrefix = string.Empty;
});
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
endpoints.MapControllerRoute(
"default","{controller=Products}/{action=GetAll}/{id?}");
});
app.USEOcelot();
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。