Tempo di risposta dell’API Web

Sto creando un sistema di monitoraggio server e voglio inviare una richiesta a un’API Web e ottenere lo stato del server in un object JSON se è ok, se le sue connessioni al database stanno funzionando, il suo tempo di risposta, ecc.

Come posso implementare il tempo di risposta, dicendo quanto tempo impiega l’API Web per rispondere alla richiesta?

Puoi avviare un cronometro sul tuo client e fermarlo quando ricevi il tuo parasole

Se si desidera implementare Web Api Monitoring, è ansible creare un DelegatingHandler personalizzato per tenere traccia della durata e dello stato dell’azione.

Ecco un esempio molto semplice per misurare la durata dell’operazione. La durata è aggiunta alla risposta (abbastanza inutile); è meglio memorizzare questo tipo di dati in un repository dedicato.

public class MonitoringDelegate : DelegatingHandler { protected override async Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { var watcher = Stopwatch.StartNew(); var response = await base.SendAsync(request, cancellationToken); watcher.Stop(); //store duration somewheren here in the response header response.Headers.Add("X-Duration", watcher.ElapsedMilliseconds.ToString()); return response; } }