brunch

You can make anything
by writing

C.S.Lewis

by 유윤식 Oct 04. 2020

Python API: FastAPI(2)

#path parameter #query parameter

Path Parameter vs. Query parameter


PP, QP 로 간단하게 불러보면 좋지.


FastAPI 에서 위 둘은 개념적으로 차이가 존재함.

하지만,

Flask를 예로 위의 두 개념을 적용하려면 열심히 코딩을 하면

가능함.


사실,

왜 신경을 써야하는지 난 모르겠음. 누군가에게는 당연히 컨트롤 해야하는 중요한 작업이지.


여기서!

typing 을 통해서 상속받은 Optional 을 사용하면 정말 쉽게 만들 수 있음.



from typing import Optional

from fastapi import FastAPI


app = FastAPI()


@app.get("/item/3/{item_id}")

async def read_item(item_id: str, q: Optional[str] = None):

    if q:

        return {"item_id": item_id, "q": q}


    return {"item_id": item_id}



우왕~! 쉽다.

이걸 스웨거를 통해서 보면,


여기서!

꼭 요구해야하는 파라미터와 선택적으로 요구되는 파라미터를 구분해보면,


@app.get("/item/4/{item_id}")

async def read_user_item(

    item_id: str, required_x: str, optional_y: int = 0, optional_z: Optional[int] = None

):

    item = {"item_id": item_id, "required_x": required_x,

            "optional_y": optional_y, "optional_z": optional_z}


    return item


스웨거로 확인!


위에 2개 (item_id: path parameter, required_x: query parameter) 는 필수!

아래 2개 (optional_y: query parameter, optional_z: query parameter) 는 선택!


Optional 구문을 잘 활용하면 좀 더 명확한 의미 전달이 될 것으로 보임.

작가의 이전글 Python API: FastAPI
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari