1
0
mirror of https://github.com/actix/actix-website synced 2025-02-02 12:19:04 +01:00

33 lines
958 B
Rust
Raw Normal View History

2020-09-12 16:21:54 +01:00
#![allow(dead_code)]
2019-06-17 16:57:57 -04:00
// <error-handler>
use actix_web::middleware::errhandlers::{ErrorHandlerResponse, ErrorHandlers};
2021-12-22 13:36:35 -05:00
use actix_web::{dev, http, web, App, HttpResponse, HttpServer, Result};
2019-06-17 16:57:57 -04:00
2021-12-22 13:36:35 -05:00
fn add_error_header<B>(mut res: dev::ServiceResponse<B>) -> Result<ErrorHandlerResponse<B>> {
2019-06-17 16:57:57 -04:00
res.response_mut().headers_mut().insert(
http::header::CONTENT_TYPE,
http::HeaderValue::from_static("Error"),
);
Ok(ErrorHandlerResponse::Response(res))
}
2020-09-12 16:21:54 +01:00
#[actix_web::main]
2019-12-29 02:03:17 +09:00
async fn main() -> std::io::Result<()> {
2019-06-26 02:59:20 -04:00
HttpServer::new(|| {
App::new()
2021-12-22 13:36:35 -05:00
.wrap(ErrorHandlers::new().handler(
http::StatusCode::INTERNAL_SERVER_ERROR,
add_error_header,
))
2019-06-26 02:59:20 -04:00
.service(
2021-12-22 13:36:35 -05:00
web::resource("/")
.route(web::get().to(HttpResponse::InternalServerError)),
2019-06-26 02:59:20 -04:00
)
})
2020-09-12 16:21:54 +01:00
.bind("127.0.0.1:8080")?
2019-06-26 02:59:20 -04:00
.run()
2019-12-29 02:03:17 +09:00
.await
2019-06-17 16:57:57 -04:00
}
// </error-handler>