Nel framework Handler
, la Response
viene passata come parametro:
Response
incapsula tutti i componenti di una risposta HTTP, fornendo un'API completa per costruire e manipolare le risposte HTTPres.status_code(200).body("Hello")
), facilitando la costruzione fluida delle risposte&mut self
, permettendo agli handler di costruire e personalizzare facilmente le risposte HTTP per soddisfare varie esigenze dei servizi webDopo che il server riceve una richiesta dal client, qualsiasi Handler
o middleware corrispondente può scrivere dati nella Response
. In alcuni casi, ad esempio quando un middleware vuole impedire l'esecuzione dei middleware e Handler
successivi, è possibile utilizzare FlowCtrl
:
Scrivere dati nella Response
è molto semplice:
Scrittura di dati di testo semplice
Scrittura di dati serializzati in JSON
Se si chiama più volte il metodo render
per scrivere dati JSON, questi non verranno uniti in un unico oggetto JSON, ma concatenati come frammenti di testo indipendenti, potenzialmente generando un formato JSON non valido. Se è necessario restituire più dati, è consigliabile combinarli in un unico oggetto prima della serializzazione o gestire la logica manualmente.
Scrittura di HTML
Utilizzando render
è possibile scrivere informazioni dettagliate sull'errore nella Response
.
Se non sono necessarie informazioni personalizzate sull'errore, è possibile chiamare direttamente set_http_code
.
render
può essere utilizzato per scrivere una risposta di reindirizzamento nella Response
, navigando verso un nuovo URL. Quando si chiama il metodo Redirect::found, viene impostato il codice di stato HTTP a 302 (Found), indicando un reindirizzamento temporaneo.
Il tipo Body restituito dalla Response è ResBody
, un'enumerazione che in caso di errore viene impostata su ResBody::Error
, contenente informazioni sull'errore per una gestione posticipata. StatusError
in realtà non implementa Writer
, con lo scopo di permettere la personalizzazione della visualizzazione nel Catcher
.