我们具有微服务架构(服务结构),在一个应用程序中具有多个服务,如下所示
-派对服务 -Web API服务,向交易对手服务提供所有API
类似于以上结构,有不同的服务和相应的Web API
我们正在创建一个API网关,以提供所有服务的通用接口。为此,我们创建了.Net Web应用程序,并在ocelot.json中进行了如下配置
{
"ReRoutes": [
{
"DownstreamPathTemplate": "/xxxx.Counterparty.Application/Itea.BillingFramework.Counterparty.WebApi/api/{everything}",
"DownstreamScheme": "http",
"DownstreamHostAndPorts": [
{
"Host": "localhost",
"Port": 19081
}
],
"UpstreamPathTemplate": "/api/{everything}",
"UpstreamHttpMethod": [ "Get", "Post", "Put" ],
"AuthenticationOptions": {
"AuthenticationProviderKey": "BasicAuthentication",
"AllowedScopes": []
}
}
],
"GlobalConfiguration": {
"BaseUrl": "http://localhost:50314"
}
}
我有一个认证方案,定义为BasicAuthentication
。当我向下面的URL发送带有身份验证参数的请求
http://localhost:50314/api/countertparty?xxx
该请求即将到达BasicAuthentication
类,但不会重新路由到DownstreamPathTemplate
文件中配置的ocelot.json
URL。
如果未定义身份验证,则会正确重新路由。
我的配置有什么问题,需要任何帮助吗?