1 unstable release
0.1.1 | Nov 25, 2021 |
---|
#1496 in HTTP server
77 downloads per month
10KB
133 lines
tower-default-headers-rs
tower-compatible middleware to set default HTTP response headers
see also
-
tower: source code crate
-
owasp-headers-rs: source code crate
lib.rs
:
When building an HTTP service, you may find that many/all of your endpoints are required to return the same set of HTTP headers, so may find this crate is a convenient way to centralise these common headers into a middleware.
This middleware will apply these default headers to any outgoing response that does not already have headers with the same name(s).
Example
use axum::{
body::Body,
http::header::{HeaderMap, HeaderValue, X_FRAME_OPTIONS},
routing::{get, Router},
};
use tower_default_headers::DefaultHeadersLayer;
let mut default_headers = HeaderMap::new();
default_headers.insert(X_FRAME_OPTIONS, HeaderValue::from_static("deny"));
let app = Router::new()
.route("/", get(|| async { "hello, world!" }))
.layer(DefaultHeadersLayer::new(default_headers));
axum::Server::bind(&"0.0.0.0:3000".parse().unwrap())
.serve(app.into_make_service())
.await
.unwrap();
Dependencies
~1.3–2MB
~39K SLoC