2 releases
| 0.1.1 | Jul 6, 2023 |
|---|---|
| 0.1.0 | Jul 2, 2023 |
#16 in #empty
6KB
87 lines
no_empty_query_params
Sumary
Middleware layer that removes params with empty values.
Motivation
In nginx configuration, when rewriting URLs (e.g. to pass to the upstream server), query params can be interpolated using $arg_
Example:
proxy_pass http://upstream/some/route?format=$arg_param;
Axum makes it easy to write handlers that automatically deserialize the query parameters:
#[derive(Deserialize)]
enum Format {
Json,
Html,
Text
}
#[derive(Deserialize)]
struct RouteArgs {
format: Option<Format>
}
Annoyingly, the above example will fail. Since format= is always unconditionally passed to the handler via the nginx configuratio, the default deserialization will try to deserialize Format from "".
Dependencies
~1MB
~18K SLoC