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

Валидация с помощью RegEx

Регулярные выражения (или RegEx) - это последовательность символов, которая определяет шаблон поиска. 

Модуль re, включенный в стандартную библиотеку Python, реализует функциональность RegEx. Классы Path() и Query() в FastAPI позволяют определить параметр RegEx для проверки, чтобы можно было проверить строковое значение параметра пути/запроса по указанному шаблону поиска.

Давайте включим параметр RegEx в функцию Path(), чтобы ограничить значение first_name либо начинаться с J, либо заканчиваться на s (как например John, Tomas).

from typing import Annotated
from fastapi import FastAPI, Path, Query

app = FastAPI()


@app.get("/user/{username}")
async def login(
        username: Annotated[
            str, Path(min_length=3, max_length=15, description='Enter your username', example='permin0ff')],
        first_name: Annotated[
            str | None, Query(max_length=10, regex="^J|s$")] = None) -> dict:
    return {"user": username, "Name": first_name}

Запустим приложение и проверим работу валидатора через регулярные выражения. Если мы вводим в поле first_name текст John, то проверка выполняется успешно.

Но если мы вводим имя, которое не подходит под наше регулярное выражение, то получаем ошибку:


Будьте вежливы и соблюдайте наши принципы сообщества. Пожалуйста, не оставляйте решения и подсказки в комментариях, для этого есть отдельный форум.
Нет обсуждений. Начните первое.