Параметр ge
Параметр ge применяется в функциях
Path, Query, Header, Cookie и Body
для задания минимально допустимого значения числового параметра.
Название происходит от английского "greater than or equal" -
больше или равно. Если клиент передаст значение меньше указанного,
FastAPI вернёт ошибку валидации 422.
Параметр принимает число типа int или float.
Он работает совместно с аннотацией типа параметра
и применяется как к обязательным, так и к необязательным параметрам.
Синтаксис
from fastapi import FastAPI, Query, Path
app = FastAPI()
@app.get('/items/')
def read_items(q: int = Query(ge=1)):
return {'q': q}
@app.get('/items/{item_id}')
def read_item(item_id: int = Path(ge=1)):
return {'item_id': item_id}
Пример
Давайте зададим минимальное значение для query-параметра q:
from fastapi import FastAPI, Query
app = FastAPI()
@app.get('/items/')
def read_items(q: int = Query(ge=1)):
return {'q': q}
Результат выполнения кода для адреса /items/?q=5:
{"q": 5}
Результат выполнения кода для адреса /items/?q=0:
{
"detail": [
{
"type": "greater_than_equal",
"loc": ["query", "q"],
"msg": "Input should be greater than or equal to 1",
"input": "0",
"ctx": {"ge": 1}
}
]
}
Пример
Давайте зададим минимальное значение для path-параметра item_id:
from fastapi import FastAPI, Path
app = FastAPI()
@app.get('/items/{item_id}')
def read_item(item_id: int = Path(ge=1)):
return {'item_id': item_id}
Результат выполнения кода для адреса /items/3:
{"item_id": 3}
Результат выполнения кода для адреса /items/0:
{
"detail": [
{
"type": "greater_than_equal",
"loc": ["path", "item_id"],
"msg": "Input should be greater than or equal to 1",
"input": "0",
"ctx": {"ge": 1}
}
]
}
Пример
Давайте зададим минимальное значение для необязательного
query-параметра q с типом float:
from fastapi import FastAPI, Query
app = FastAPI()
@app.get('/items/')
def read_items(q: float | None = Query(default=None, ge=0.5)):
return {'q': q}
Результат выполнения кода для адреса /items/?q=0.7:
{"q": 0.7}
Результат выполнения кода для адреса /items/?q=0.3:
{
"detail": [
{
"type": "greater_than_equal",
"loc": ["query", "q"],
"msg": "Input should be greater than or equal to 0.5",
"input": "0.3",
"ctx": {"ge": 0.5}
}
]
}