Sobes.tech
Junior — Middle

Pode dar um exemplo de uso de uma camada intermédia para estimar a duração do processamento de cada pedido?

sobes.tech IA

Resposta da IA

A camada intermédia (middleware) para avaliar a duração do processamento de uma solicitação é frequentemente implementada através da interceptação da chamada e medição do tempo antes e depois do processamento.

Exemplo em C# usando middleware do ASP.NET Core:

public class RequestTimingMiddleware
{
    private readonly RequestDelegate _next;

    public RequestTimingMiddleware(RequestDelegate next)
    {
        _next = next;
    }

    public async Task InvokeAsync(HttpContext context)
    {
        var stopwatch = Stopwatch.StartNew();

        await _next(context); // passa o controle para o próximo componente

        stopwatch.Stop();
        var elapsedMs = stopwatch.ElapsedMilliseconds;

        Console.WriteLine($"Request [{context.Request.Method}] {context.Request.Path} took {elapsedMs} ms.");
    }
}

// No Startup.cs ou Program.cs, adicione o middleware:
// app.UseMiddleware<RequestTimingMiddleware>();

Este middleware mede o tempo de processamento de cada requisição HTTP e exibe o resultado no console. Essa abordagem ajuda a monitorar o desempenho e identificar gargalos.