| Crates.io | remove_empty_query_params |
| lib.rs | remove_empty_query_params |
| version | 0.1.1 |
| created_at | 2023-07-02 06:29:23.269337+00 |
| updated_at | 2023-07-06 06:48:58.282364+00 |
| description | tower middleware to remove empty query parameters |
| homepage | |
| repository | https://github.com/mingtaoy/remove_empty_query_params |
| max_upload_size | |
| id | 905884 |
| size | 6,310 |
Middleware layer that removes params with empty values.
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 "".