ProxyKit - это обратный прокси-сервер ядра dotnet, который позволяет пересылать запросы на вышестоящий сервер, а также изменять запросы и ответы.
Пример условной пересылки:
public void Configure(IApplicationBuilder app)
{
// Forwards the request only when the host is set to the specified value
app.UseWhen(
context => context.Request.Host.Host.Equals("api.example.com"),
appInner => appInner.RunProxy(context => context
.ForwardTo("http://localhost:5001")
.AddXForwardedHeaders()
.Send()));
}
Пример изменения запроса:
public void Configure(IApplicationBuilder app)
{
// Inline
app.RunProxy(context =>
{
var forwardContext = context.ForwardTo("http://localhost:5001");
if (forwardContext.UpstreamRequest.Headers.Contains("X-Correlation-ID"))
{
forwardContext.UpstreamRequest.Headers.Add("X-Correlation-ID", Guid.NewGuid().ToString());
}
return forwardContext.Send();
});
}
Если, с другой стороны, вы хотите перенаправить ваш запрос из действия контроллера, вам придется скопировать запрос.