noemptyquery_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:

```rust

[derive(Deserialize)]

enum Format { Json, Html, Text }

[derive(Deserialize)]

struct RouteArgs { format: Option } ```

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 "".