이전 글에서 main.py 파일에서 간단한 api를 생성해보았다. 그럼 왜 router 설정이 또 필요한것일까? main.py에서는 app을 실행시키며 router는 따로 묶어서 실행하기 위해서라고 생각하면 쉬울 것 같다.
글로는 나도 잘 이해가 안됐지만 코드로 보면 이해가 쉽다.
from fastapi import APIRouter
board_router = APIRouter()
board_list = []
@board_router.get("/board")
def get() -> dict:
return {"list" : board_list}
@board_router.post("/board")
def post(board: dict) -> dict:
board_list.append(board)
return {"message" : "success"}
이렇게 board.py 파일을 생성해서 따로 관리할 수 있게 된다.
from typing import Union
from fastapi import FastAPI
from board import board_router
app = FastAPI()
... 이전에 정의 했던 코드들 or 코드 모두 삭제해도 됨
app.include_router(board_router)
app.include_router() function을 통해 router를 계속해서 추가해서 진행하면 된다.
router를 사용하면 main과 router들의 각각의 기등들을 모두 분리할 수 있기 때문에 편하다.
참고로 /{name} 과 같이 path를 사용했던 router는 삭제해주어야 정상 작동한다!

/board 요청시 list를 확인이 가능하다.

다음과 같이 postman을 사용하여 post를 1,2,3 호출해주었고

board를 get방식으로 다시 호출해주면 내용이 추가된것을 확인할 수 있다.