Параметр deprecated
Параметр deprecated передаётся в функции
Path, Query, Header,
Cookie и другие объявители параметров FastAPI.
Он принимает булево значение и по умолчанию равен
False. Если установить True, то
параметр помечается как устаревший: в интерактивной
документации Swagger рядом с ним появляется пометка
deprecated, а сам параметр продолжает работать
без изменений. Это удобно, когда нужно постепенно
выводить параметр из использования, не ломая
существующих клиентов.
Синтаксис
from fastapi import Query
def handler(
param: str = Query(deprecated=True),
):
...
Пример
Давайте объявим устаревший параметр запроса user
и посмотрим, как он выглядит в документации:
from fastapi import FastAPI, Query
app = FastAPI()
@app.get('/items/')
def read_items(
user: str = Query(default='', deprecated=True),
):
return {'user': user}
При обращении по адресу /items/?user=abcde
параметр продолжает приниматься:
{"user": "abcde"}
Пример
Давайте пометим устаревшим параметр пути user_id:
from fastapi import FastAPI, Path
app = FastAPI()
@app.get('/user/{user_id}')
def read_user(
user_id: int = Path(deprecated=True),
):
return {'user_id': user_id}
При обращении по адресу /user/1 результат будет
таким же, как и без пометки:
{"user_id": 1}
Пример
Давайте пометим устаревшим параметр заголовка x_token
и убедимся, что он по-прежнему извлекается из запроса:
При передаче заголовка x-token: hello получим:
{"x_token": "hello"}
Смотрите также
-
класс
Query,
который объявляет параметры запроса -
класс
Path,
который объявляет параметры пути -
класс
Header,
который объявляет параметры заголовка -
параметр
description,
который добавляет описание параметра в документацию