2

我创建了具有多个无状态和有状态服务的 Azure 服务结构应用程序。我所有的有状态服务都可以通过 Web Api 无状态服务访问。现在我已将 Ocelot API 网关添加到另一个无状态 Web api 服务,我只想从该网关访问我的所有服务。现在,当我尝试从我的 API 网关服务访问服务时,它给了我 404。

豹猫配置

{
  "ReRoutes": [
    {
      "DownstreamPathTemplate": "/api/product/seed",
      "DownstreamScheme": "http",
      "UpstreamPathTemplate": "/api/product/randomize",
      "UpstreamHttpMethod": [ "Get" ],
      "DownstreamHostAndPorts": [
        {
          "Host": "http://localhost:8314"
        }
      ],
      "QoSOptions": {
        "TimeoutValue": 360000
      }
    }
  ],
  "GlobalConfiguration": {
    "BaseUrl": "http://localhost:8445"
  }
}

我在这里缺少什么?

4

1 回答 1

0

如果您在本地调试,则无需在主机配置手册中添加协议方案和端口,您可以从 Host 值中省略 HTTP 流量,并为端口包含兄弟属性(参见下面的示例):

{
  "DownstreamPathTemplate": "/api/user/",
  "DownstreamScheme": "http",
  "DownstreamHostAndPorts": [
    {
      "Host": "demo.api.gateway",
      "Port": 52792
    }
  ],
  "UpstreamPathTemplate": "/api/user/",
  "UpstreamHttpMethod": [ "Get" ]
},

顺便说一句,我写了一篇关于 API 网关和 ASP.net Core + Ocelot 的 API 网关教程,如果你有兴趣了解更多关于 API 网关的信息,你可能想查看这篇文章:

https://www.pogsdotnet.com/2018/08/api-gateway-in-nutshell.html

希望能帮助到你!
艾伦

于 2018-09-23T08:21:08.253 回答