The FromRequest Trait: Consuming Request Bodies in Axum
Axum's `FromRequest` trait defines how to create a type by consuming an HTTP request body. It's the core of extractors like `Json<T>` that deserialize POST data. The footgun: you can only use one `FromRequest` extractor per handler, as it consumes the body.
Axum's `FromRequest` trait is the core pattern for extractors that create a type by consuming an entire HTTP request body. It's the recipe for turning a raw request into a useful Rust type like `Json<User>` or raw `Bytes`. You implement it for custom types or use built-in extractors, letting you add them directly to a handler's signature. The footgun: `FromRequest` consumes the body, so only one is allowed per handler. For headers or path parameters, use the non-consuming `FromRequestParts` trait instead.
Read the original → docs.rs
- #rust
- #axum
- #web
- #api
- #design pattern
Get five bites like this every day.
Tezvyn delivers a daily feed of 60-second tech bites with quizzes to lock in what you learn.