frontend에서 json 타입으로 request body에 값을 전달하는 경우, fast api request 클래스를 생성해서 injection하면 type validate 할 수 있다. request 인스턴스에 dict() 메서드를 사용해서 dict로 만든다음 unpacking해서 dto class를 초기화하면 dto 인스턴스가 만들어진다. dto를 하위 레이어인 usecase에 넘겨서 사용한다.
from fastapi import APIRouter
from A import CreateSomethingRequest
from B import Response
router = APIRouter()
@router.post(
path="",
response_model=Response,
responses={},
description="desc",
)
def create_something(
request: CreateSomethingRequest
):
UseCase().run(dto=Dto(**request.dict()))
return
from pydantic import BaseModel
from typing import List
class CreateSomethingRequest(BaseModel):
name: str = None
age: int = None
hobbies: List[str] = None