Метод patch класса APIRouter
Метод patch применяется к объекту
APIRouter и вешает функцию на PATCH-запрос.
Первым параметром передаётся путь URL.
Вторым параметром можно передать дополнительные
настройки маршрута. Функция возвращает словарь,
список или модель, которые FastAPI отдаёт как JSON.
Синтаксис
router.patch(path)
Пример
Давайте создадим роутер и повесим обработчик на адрес '/items/{item_id}':
from fastapi import APIRouter, FastAPI
app = FastAPI()
router = APIRouter()
@router.patch('/items/{item_id}')
def update_item(item_id: int):
return {'item_id': item_id, 'updated': True}
app.include_router(router)
Результат выполнения кода для адреса /items/5:
{"item_id": 5, "updated": true}
Пример
Давайте примем тело PATCH-запроса через модель Pydantic:
from fastapi import APIRouter, FastAPI
from pydantic import BaseModel
app = FastAPI()
router = APIRouter()
class Item(BaseModel):
name: str
price: float
@router.patch('/items/{item_id}')
def update_item(item_id: int, item: Item):
return {'item_id': item_id, 'name': item.name, 'price': item.price}
app.include_router(router)
Результат выполнения кода для адреса /items/3 с телом {"name": "abcde", "price": 10.5}:
{"item_id": 3, "name": "abcde", "price": 10.5}