Crates.io | remove_empty_query_params |
lib.rs | remove_empty_query_params |
version | 0.1.1 |
source | src |
created_at | 2023-07-02 06:29:23.269337 |
updated_at | 2023-07-06 06:48:58.282364 |
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 ""
.