@ -222,12 +222,16 @@ So, when you need to declare a value as required while using `Query`, you can si
### Required, can be `None` { #required-can-be-none }
### Required, can be `None` { #required-can-be-none }
You can declare that a parameter can accept `None`, but that it's still required. This would force clients to send a value, even if the value is `None`.
You can declare that a parameter can include `None` in its type while still being required.
To do that, you can declare that `None` is a valid type but simply do not declare a default value:
To do that, you can declare that `None` is a valid type but simply do not declare a default value:
In this case, clients still have to provide the query parameter.
If the query parameter is omitted, FastAPI returns a validation error.
Also keep in mind that query parameters are strings in URLs, so clients don't directly send a JSON `null` value.
## Query parameter list / multiple values { #query-parameter-list-multiple-values }
## Query parameter list / multiple values { #query-parameter-list-multiple-values }
When you define a query parameter explicitly with `Query` you can also declare it to receive a list of values, or said in another way, to receive multiple values.
When you define a query parameter explicitly with `Query` you can also declare it to receive a list of values, or said in another way, to receive multiple values.