Метод put класса APIRouter
Метод put применяется к объекту APIRouter
и вешает функцию на PUT-запрос.
Первым параметром передаётся путь URL.
Вторым параметром может передаваться функция-обработчик.
Функция возвращает словарь, список или модель,
которые FastAPI отдаёт как JSON.
Роутер затем подключается к приложению через include_router.
Синтаксис
router.put(path)
Пример
Давайте создадим роутер и повесим обработчик на адрес '/user':
from fastapi import APIRouter
router = APIRouter()
@router.put('/user')
def update_user():
return {'text': 'updated'}
Теперь подключим роутер к приложению:
from fastapi import FastAPI
from routers.users import router
app = FastAPI()
app.include_router(router)
Результат выполнения кода для PUT-запроса на адрес /user:
{"text": "updated"}
Пример
Давайте примем данные из тела запроса через модель Pydantic:
from fastapi import APIRouter
from pydantic import BaseModel
router = APIRouter()
class User(BaseModel):
name: str
age: int
@router.put('/user/{user_id}')
def update_user(user_id: int, user: User):
return {'user_id': user_id, 'name': user.name, 'age': user.age}
Теперь подключим роутер к приложению:
from fastapi import FastAPI
from routers.users import router
app = FastAPI()
app.include_router(router)
Результат выполнения кода для PUT-запроса на адрес /user/1 с телом {"name": "abcde", "age": 25}:
{"user_id": 1, "name": "abcde", "age": 25}
Пример
Давайте передадим путь и функцию-обработчик явно, без декоратора:
from fastapi import APIRouter
router = APIRouter()
def update_item():
return {'text': 'item updated'}
router.put('/item', update_item)
Теперь подключим роутер к приложению:
from fastapi import FastAPI
from routers.users import router
app = FastAPI()
app.include_router(router)
Результат выполнения кода для PUT-запроса на адрес /item:
{"text": "item updated"}
Смотрите также
-
класс
APIRouter,
который группирует маршруты в отдельный роутер -
метод
get,
который вешает обработчик на GET-запрос -
метод
post,
который вешает обработчик на POST-запрос -
метод
include_router,
который подключает роутер к приложению