РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
89 of 307 menu

Параметр pattern

Параметр pattern применяется к объявлению параметра пути, запроса, заголовка или cookie. Он принимает строку с регулярным выражением и проверяет, что пришедшее значение полностью ей соответствует. Если значение не подходит, FastAPI возвращает ошибку валидации 422.

Параметр pattern работает для строковых значений и чаще всего используется вместе с Query, Path, Header и Cookie. Регулярное выражение задаётся по правилам модуля re и проверяется через re.match, то есть значение должно совпадать целиком.

Синтаксис

Query(pattern='регулярное_выражение')
Path(pattern='регулярное_выражение')

Пример

Давайте потребуем, чтобы параметр запроса name состоял только из латинских букв:

from fastapi import FastAPI, Query app = FastAPI() @app.get('/user') def user(name: str = Query(pattern='^[a-zA-Z]+$')): return {'name': name}

Результат выполнения кода для адреса /user?name=abcde:

{"name": "abcde"}

Результат выполнения кода для адреса /user?name=abc123:

{"detail": [{"type": "string_pattern_mismatch", "loc": ["query", "name"], "msg": "String should match pattern '^[a-zA-Z]+$'", "input": "abc123"}]}

Пример

Давайте проверим, что идентификатор пользователя в пути состоит ровно из пяти цифр:

from fastapi import FastAPI, Path app = FastAPI() @app.get('/user/{user_id}') def user(user_id: str = Path(pattern='^[0-9]{5}$')): return {'user_id': user_id}

Результат выполнения кода для адреса /user/12345:

{"user_id": "12345"}

Результат выполнения кода для адреса /user/123:

{"detail": [{"type": "string_pattern_mismatch", "loc": ["path", "user_id"], "msg": "String should match pattern '^[0-9]{5}$'", "input": "123"}]}

Пример

Давайте зададим шаблон для заголовка token, который должен начинаться с 'Bearer ':

from fastapi import FastAPI, Header app = FastAPI() @app.get('/data') def data(token: str = Header(pattern='^Bearer .+$')): return {'token': token}

Результат выполнения кода для заголовка Bearer abcde:

{"token": "Bearer abcde"}

Смотрите также

  • параметр min_length,
    который задаёт минимальную длину строки
  • параметр max_length,
    который задаёт максимальную длину строки
  • функция Query,
    которая объявляет параметр запроса
  • функция Path,
    которая объявляет параметр пути
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить