Files
mapo-core/MP.RIOC/Services/PreserveBodyTransformer.cs
2026-05-09 10:19:17 +02:00

21 lines
950 B
C#

using Yarp.ReverseProxy.Forwarder;
namespace MP.RIOC.Services
{
public class PreserveBodyTransformer : HttpTransformer
{
public override async ValueTask TransformRequestAsync(HttpContext httpContext, HttpRequestMessage proxyRequest, string destinationPrefix, CancellationToken cancellationToken)
{
// 1. Lascia che YARP faccia il lavoro pesante di copia (headers, etc.)
await base.TransformRequestAsync(httpContext, proxyRequest, destinationPrefix, cancellationToken);
// 2. Il metodo viene già gestito da YARP, ma forzarlo non fa male
proxyRequest.Method = new HttpMethod(httpContext.Request.Method);
// NOTA: Se non stai leggendo il body qui per fare logging,
// rimuovi completamente EnableBuffering e il reset della Position.
// YARP leggerà lo stream direttamente da httpContext.Request.Body verso il backend.
}
}
}