mirror of https://github.com/tiangolo/fastapi.git
docs: fix inline code formatting and add tested example for Required, can be None section
This commit is contained in:
parent
c841c42929
commit
b1c309a666
|
|
@ -271,23 +271,12 @@ For example, you might try:
|
|||
q: Annotated[str | None, Query(min_length=3)] = ...
|
||||
```
|
||||
|
||||
But this will still expect a string value, and if the client omits q or tries to send q=None, FastAPI will raise a validation error.
|
||||
In other words, None is not an acceptable runtime value for query parameters — only strings are.
|
||||
But this will still expect a **string** value, and if the client omits `q` or tries to send `q=None`, FastAPI will raise a validation error.
|
||||
In other words, `None` is not an acceptable runtime value for query parameters — only strings are.
|
||||
|
||||
If you want to accept special values (like "None" or an empty string) and interpret them as None in your application, you can handle them manually in your function:
|
||||
If you want to accept special values (like `"None"` or an empty string) and interpret them as `None` in your application, you can handle them manually in your function:
|
||||
|
||||
```Python
|
||||
from fastapi import FastAPI, Query
|
||||
from typing import Annotated
|
||||
|
||||
app = FastAPI()
|
||||
|
||||
@app.get("/items/")
|
||||
async def read_items(q: Annotated[str | None, Query()] = ...):
|
||||
if q in ("None", "", "null"):
|
||||
q = None
|
||||
return {"q": q}
|
||||
```
|
||||
{* ../../docs_src/query_params_str_validations/tutorial006d_an_py310.py hl[9] *}
|
||||
|
||||
## Query parameter list / multiple values { #query-parameter-list-multiple-values }
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,10 @@
|
|||
from fastapi import FastAPI, Query
|
||||
from typing import Annotated
|
||||
|
||||
app = FastAPI()
|
||||
|
||||
@app.get("/items/")
|
||||
async def read_items(q: Annotated[str | None, Query()] = ...):
|
||||
if q in ("None", "", "null"):
|
||||
q = None
|
||||
return {"q": q}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
from fastapi.testclient import TestClient
|
||||
from docs_src.query_params_str_validations.tutorial006d_an_py310 import app
|
||||
|
||||
client = TestClient(app)
|
||||
|
||||
def test_read_items():
|
||||
response = client.get("/items/", params={"q": "None"})
|
||||
assert response.status_code == 200
|
||||
assert response.json() == {"q": None}
|
||||
Loading…
Reference in New Issue