Ошибка перенаправления ядра asp.net с Ocelot (7.0.4)

"ReRoutes": [
{
  "DownstreamPathTemplate": "/api/Agent/GetPagedAgents?page={page}",
  "DownstreamScheme": "http",
  "DownstreamHostAndPorts": [
    {
      "Host": "agent.api",
      "Port": 80
    }
  ],
  "UpstreamPathTemplate": "/api/account/user/list/GetPagedAgents?page={page}",
  "UpstreamHttpMethod": []

}]

Здесь я пытаюсь перенаправить мой UpstreamPathTemplate в DownstreamPathTemplate из строки запроса,

"http://accountmanagement/api/account/user/list/GetPagedAgents?page=1"

это моя строка запроса, которую я отправляю в службу управления учетными записями для перенаправления в службу агента с помощью ocelot.

Это мой метод контроллера в службе агента для получения перенаправленного пути

    [HttpGet]
    [Route("GetPagedAgents")]
    [ProducesResponseType((int)HttpStatusCode.OK)]
    [ProducesResponseType((int)HttpStatusCode.BadRequest)]
    public IActionResult Get(string page, string pageSize, string filter, 
    string sortBy)
    {
        var Result = _agentServices.GetAll(Convert.ToInt32(page), 
Convert.ToInt32(pageSize),filter,sortBy);

          return Ok(Result);
    }

Но это не работает. В моем окне OUTPUT отображается сообщение: Невозможно найти нисходящий маршрут для пути: /api/account/user/list/GetPagedAgents, глагол: GET

это означает, что здесь он принимает мой UpstreamPath как

 Upstream url path is /api/account/user/list/GetPagedAgents

здесь отсутствует параметр.

любая помощь будет оценена. Спасибо

1 ответ

Вы пытались добавить [FromQuery] атрибут?

public IActionResult Get([FromQuery] string page, [FromQuery] string pageSize, [FromQuery] string filter, [FromQuery]string sortBy)
{
...
}

или создайте простую модель

public class Request
{
   public string Page { get; set; }
   public string PageSize { get; set; }
   public string Filter { get; set; }
   public string SortBy { get; set; }
}

и использовать его как

public IActionResult Get([FromQuery] Request request)
{
...
}
Другие вопросы по тегам