У меня есть API-шлюз (C#, net .Core 3.1, Ocelot), все работает нормально, но сейчас я пытаюсь настроить разные маршруты для восходящего и нисходящего потоков, потому что мой шлюз извлекает информацию во время процесса и отправьте эту информацию в окончательный API.
В апстриме у меня нет заполнителя {userid}, но я хочу, чтобы он был в нисходящем направлении.
Вот мой оцелот. json:
"DownstreamPathTemplate": "/api/User/{userid}",
"DownstreamScheme": "http",
"DownstreamHostAndPorts": [
{
"Host": "localhost",
"Port": 44301
}
],
"UpstreamPathTemplate": "/api/User/",
"UpstreamHttpMethod": [ "Get" ],
И вот как я добавляю в промежуточное ПО значение заполнителя:
if (context.DownstreamRequest.OriginalString.Contains("User"))
{
context.DownstreamRequest.AbsolutePath =
context.DownstreamRequest.AbsolutePath + userid; //this variable is valued before
}
Итак, чтобы быть более понятным, вот пример:
Меня вызывают по http://localhost: 44358 / api / User / (mygateway Upstream), из некоторых логик я получаю идентификатор пользователя, который сделал этот вызов, например Эндрю, и я хочу перенаправить запрос к моему API http://localhost: 44301 / api / User / Andrew (mygateway Downstream).
Все в порядке, за исключением того, что в моем API идентификатор пользователя появляется как {идентификатор пользователя}, а не имеет значение ID пользователя (Андрей).