在控制器操作上使用FromBody属性时,Ocelot Gateway API返回415

时间:2019-02-20 14:22:05

标签: asp.net-core api-gateway ocelot

我正在为Kubernetes集群中运行的基于微服务的应用程序设置Ocelot API网关。路由工作正常,但是当我在控制器操作上使用FromBody属性时,POST请求失败。

这是一个简化的示例。

Ocelot配置

{
    "UpstreamPathTemplate": "/v1/test/{everything}",
    "UpstreamHttpMethod": [],
    "DownstreamPathTemplate": "/api/v1/test/{everything}",
    "DownstreamScheme": "http",
    "DownstreamHostAndPorts": [{
        "Host": "users-api",
        "Port": 80
    }]
}

控制器动作

[HttpPost("post-with-from-body")]
public IActionResult PostWithFromBody([FromBody] PostDto postData)
{
  return Ok(postData);
}

如果我自己运行API,一切正常,我得到200响应。 enter image description here

但是,当通过API网关发出相同的请求时,会出现415响应。 enter image description here

我在Ocelot文档中看不到任何有关此内容的信息,因此我猜想这是API设置本身需要更改的内容。其他职位要求,例如查询参数工作正常。仅当我添加FromBody属性时,才会出现此问题。

这些是来自Ocelot的日志: enter image description here

以及来自API的日志 enter image description here

0 个答案:

没有答案