Dans un Handler
, la structure Response
est passée en tant que paramètre :
Response
encapsule tous les composants d'une réponse HTTP, fournissant une API complète pour construire et manipuler les réponses HTTPres.status_code(200).body("Hello")
), facilitant la construction fluide des réponses&mut self
, permettant aux gestionnaires de construire et personnaliser facilement les réponses HTTP pour répondre à divers besoins de services WebAprès réception d'une requête client par le serveur, tout Handler
et middleware correspondant peut écrire des données dans Response
. Dans certains cas, par exemple si un middleware souhaite empêcher l'exécution des middlewares et Handler
suivants, vous pouvez utiliser FlowCtrl
:
Écrire des données dans Response
est très simple :
Écrire des données texte simples
Écrire des données sérialisées en JSON
Si la méthode render
est appelée plusieurs fois pour écrire des données JSON, ces données ne seront pas fusionnées en un seul objet JSON, mais concaténées comme des fragments de texte indépendants, ce qui peut entraîner un format JSON invalide. Si vous devez renvoyer plusieurs données, combinez-les d'abord en un seul objet avant de les sérialiser en une fois, ou gérez la logique vous-même.
Écrire du HTML
Utilisez render
pour écrire des informations d'erreur détaillées dans Response
.
Si vous n'avez pas besoin de personnaliser le message d'erreur, vous pouvez directement appeler set_http_code
.
render
pour écrire une réponse de redirection dans Response
, naviguant vers une nouvelle URL. Lorsque vous appelez la méthode Redirect::found, elle définit le code d'état HTTP à 302 (Found), indiquant une redirection temporaire.
Le type de Body renvoyé par Response est ResBody
, une énumération qui est définie sur ResBody::Error
en cas d'erreur, contenant les informations d'erreur pour un traitement ultérieur. StatusError
n'implémente pas réellement Writer
, dans le but de vous permettre de personnaliser votre propre méthode d'affichage dans Catcher
.