from pydantic import BaseModel{"Server" : "Google"} == {data.server="Google"}FastAPI는 JSON을 BaseModel로 정의된 모델에 맞춰 유효성을 검사
필드가 잘못되면 422 에러로 응답하고, 모든 검사를 통과하면 파라미터로 전달
from pydantic import BaseModel
class DnsApplyRequest(BaseModel):
server: str
JSON 요청에 "server" 라는 문자열 필드가 들어와야 함
@router.post("/apply")
def dns_apply(data: DnsApplyRequest):
server = data.server.strip()
data에 Pydantic이 만든 DnsApplyRequest 객체가 들어있음
서버 값에 올바른 값이 들어가면 422 에러 발생
{
"detail": [
{
"loc": ["body", "server"],
"msg": "field required",
"type": "value_error.missing"
}
]
}
from pydantic import BaseModel, Field
class DnsApplyRequest(BaseModel):
server: str = Field(..., min_length=3, max_length=20, description="지원하는 DNS 이름")
...: 필수 항목(None X)
min || max_length: 문자열 길이 제한
description: Swagger 문서용 설명
server: str = "Google" 필드 기본값 설정 가능