2.5 Валидация параметров маршрутов (Path, Query)
9 из 9 шагов пройдено
12 из 12 баллов  получено

 Задача 2

Задание:

Напишите код приложения на FastAPI, в котором асинхронная функция category() будет принимать GET-запрос по маршруту /category/<category_id>/products, получая числовой параметр пути category_id и числовой параметр запроса page.

Для параметра category_id используется валидатор Path со следующими параметрами:

  • Значение должно быть больше 0
  • Описание поля Category ID

Для параметра page валидатор не нужен.

Конечная точка должна возвращать словарь с ключом 'category_id' и значением параметра category_id, и ключом 'page' и значением и значением параметра page.


P.S. На экран ничего не нужно выводить, пример запроса:

/category/3/products?page=7

ответ для него:

{'category_id': 3, 'page': 7}
Чтобы решить это задание откройте

Напишите программу. Тестируется через stdin → stdout

Time Limit: 30 секунд
Memory Limit: 256 MB

Будьте вежливы и соблюдайте наши принципы сообщества. Поделитесь своим решением и посмотрите, как задачу решали другие.
Верное решение #1223302012
Python 3.10
# put your python code here
from fastapi import FastAPI, Path, Query

app = FastAPI()

@app.get("/category/{category_id}/products")
async def category(category_id: int = Path(..., gt=0, description="Category ID"), page: int = Query(...)):
    return {"category_id": category_id, "page": page}