Ошибка перенаправления ядра 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)
{
...
}