No Handler
, a Response
é passada como parâmetro:
Response
encapsula todos os componentes de uma resposta HTTP, fornecendo uma API completa para construir e manipular respostas HTTPres.status_code(200).body("Hello")
), facilitando a construção fluida de respostas&mut self
, permitindo que os handlers construam e personalizem facilmente respostas HTTP para atender diversas necessidades de serviços webApós o servidor receber uma requisição do cliente, qualquer Handler
e middleware correspondente pode escrever dados na Response
. Em certos casos, como quando um middleware deseja impedir a execução de middlewares e Handlers
subsequentes, você pode usar FlowCtrl
:
Escrever dados na Response
é muito simples:
Escrever dados de texto puro
Escrever dados serializados em JSON
Se o método render
for chamado múltiplas vezes para escrever dados JSON, esses dados não serão combinados em um único objeto JSON, mas sim concatenados como fragmentos de texto independentes, o que pode resultar em um formato JSON inválido. Se precisar retornar múltiplos dados, combine-os em um objeto antes de serializar ou trate a lógica manualmente.
Escrever HTML
Usar render
permite escrever informações detalhadas de erro na Response
.
Se não precisar de mensagens de erro personalizadas, pode chamar diretamente set_http_code
.
render
pode ser usado para escrever uma resposta de redirecionamento na Response
, navegando para uma nova URL. Ao chamar Redirect::found, ele define o código de status HTTP como 302 (Found), indicando um redirecionamento temporário.
O tipo Body retornado pela Response é ResBody
, uma enumeração que é definida como ResBody::Error
em caso de falha, contendo informações sobre o erro para tratamento posterior. StatusError
não implementa Writer
, permitindo que você defina sua própria forma de exibição no Catcher
.