FastAPI のリクエストで正規表現

pattern 正規表現を指定すれば良い。

全角カナの正規表現、必須の例
Field で pattern を指定

from pydantic import BaseModel, Field
from fastapi import FastAPI


class Item(BaseModel):
    name: str=Field(description="品名")
    kana: str=Field(description="カナ", pattern="^[ァ-ー]+$")
class ResultBody(BaseModel):
    status: str=Field(description="ステータス")

app = FastAPI()


@app.post("/create", response_model=ResultBody)
async def create(item: Item):
    print(f'name = {item.name}')
    print(f'kana = {item.kana}')
    res = ResultBody
    res.status = "OK"
    return res

カナ以外の文字で要求すると次のエラーになる。
[{'type': 'string_pattern_mismatch', 'loc': ('body', 'kana'),
'msg': "String should match pattern '^[ァ-ー]+$'",
'input': 'あいう', 'ctx': {'pattern': '^[ァ-ー]+$'}}]