pub struct ErrorHandlers<S> { /* fields omitted */ }
Middleware
for allowing custom handlers for responses.
You can use ErrorHandlers::handler()
method to register a custom error
handler for specific status code. You can modify existing response or
create completely new one.
use actix_web::middleware::{ErrorHandlers, Response};
use actix_web::{http, App, HttpRequest, HttpResponse, Result};
fn render_500<S>(_: &HttpRequest<S>, resp: HttpResponse) -> Result<Response> {
let mut builder = resp.into_builder();
builder.header(http::header::CONTENT_TYPE, "application/json");
Ok(Response::Done(builder.into()))
}
fn main() {
let app = App::new()
.middleware(
ErrorHandlers::new()
.handler(http::StatusCode::INTERNAL_SERVER_ERROR, render_500),
)
.resource("/test", |r| {
r.method(http::Method::GET).f(|_| HttpResponse::Ok());
r.method(http::Method::HEAD)
.f(|_| HttpResponse::MethodNotAllowed());
})
.finish();
}
Construct new ErrorHandlers
instance
Register error handler for specified status code
Returns the "default value" for a type. Read more
Method is called when handler returns response, but before sending http message to peer. Read more
Method is called when request is ready. It may return future, which should resolve before next middleware get called. Read more
Method is called after body stream get sent to peer.