Параметр gt
Параметр gt применяется в функциях Path, Query,
Header, Cookie, Body и Form
для числовых значений. Он задаёт строгую нижнюю границу:
значение считается валидным только тогда, когда оно строго больше
переданного числа. Если значение равно границе или меньше неё,
FastAPI возвращает ошибку валидации.
Синтаксис
gt=value
Параметр gt принимает число и используется внутри
Path, Query, Header, Cookie,
Body или Form.
Пример
Давайте ограничим параметр пути item_id так,
чтобы он был строго больше нуля:
from fastapi import FastAPI, Path
app = FastAPI()
@app.get('/items/{item_id}')
def read_item(item_id: int = Path(gt=0)):
return {'item_id': item_id}
Результат выполнения кода для адреса /items/5:
{"item_id": 5}
Результат выполнения кода для адреса /items/0:
{"detail": [{"type": "greater_than", "loc": ["path", "item_id"], "msg": "Input should be greater than 0", "input": "0", "ctx": {"gt": 0}}]}
Пример
Давайте ограничим query-параметр age так,
чтобы он был строго больше 18:
from fastapi import FastAPI, Query
app = FastAPI()
@app.get('/user')
def get_user(age: int = Query(gt=18)):
return {'age': age}
Результат выполнения кода для адреса /user?age=20:
{"age": 20}
Результат выполнения кода для адреса /user?age=18:
{"detail": [{"type": "greater_than", "loc": ["query", "age"], "msg": "Input should be greater than 18", "input": "18", "ctx": {"gt": 18}}]}
Пример
Давайте ограничим поле модели через Body так,
чтобы значение было строго больше 100:
from fastapi import FastAPI, Body
app = FastAPI()
@app.post('/items')
def create_item(price: int = Body(gt=100)):
return {'price': price}
Результат выполнения кода для тела запроса {"price": 150}:
{"price": 150}
Результат выполнения кода для тела запроса {"price": 100}:
{"detail": [{"type": "greater_than", "loc": ["body", "price"], "msg": "Input should be greater than 100", "input": 100, "ctx": {"gt": 100}}]}