Валидация с помощью 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, то проверка выполняется успешно.
Но если мы вводим имя, которое не подходит под наше регулярное выражение, то получаем ошибку: