API Ocelot Gateway возвращает 415 при использовании атрибута FromBody в действии контроллера - PullRequest
0 голосов
/ 20 февраля 2019

Я настраиваю шлюз Ocelot API для приложения на основе микросервиса, работающего в кластере Kubernetes.Маршрутизация работает правильно, но запросы POST не выполняются, когда я использую атрибут FromBody в действии контроллера.

Это упрощенный пример.

Конфигурация 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

...