Fast api request validate and create dto

x·2021년 3월 26일
0

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

0개의 댓글