Я проектирую микросервисную архитектуру, как показано ниже:
![Microservice architecture](https://i.stack.imgur.com/PNq7R.png)
Шлюз использует Ocelot для пересылки запросов. Я хотел бы изменить тело в запросе, полученном от мобильного устройства на стороне шлюза, и добавить в тело новый GUID. Микросервисы используют шаблон CQRS, поэтому команда не должна ничего возвращать. Я реализовал пользовательское промежуточное ПО для изменения DownstreamContext:
public override async Task Execute(DownstreamContext context)
{
var secondRequest = JObject.Parse(await context.DownstreamRequest.Content.ReadAsStringAsync());
secondRequest["token"] = "test";
secondRequest["newId"] = Guid.NewGuid();
context.DownstreamRequest.Content = new StringContent(secondRequest.ToString(), Encoding.UTF8);
await this.Next(context);
}
Я отладил это и содержимое DownstreamRequest перед вызовом и ожидаем this.Next (context); изменяется, но входящий запрос в микросервис не изменяется. Есть ли способ изменить запрос в шлюзе и переслать этот запрос в микросервис в измененном виде?