Python/FastAPI

[FastAPI] (9) API Router 사용하기 (2) (with. redoc 문서 아코디언 표현)

yubi5050 2025. 1. 11. 01:19

API Router 중첩 사용하기 1

만약 redoc에서 main, main/sub1 , main/sub1/sub2의 아코디언을 분리하여 사용한다고 할 때 

다음과 같이 작성하여야 한다.

- tags를 붙이면 redoc에서 아코디언이 생성된다.

- prefix를 중복해서 작성해 주어야 한다.

main_router = APIRouter(tags=["메인 라우터"])
sub1_router = APIRouter(tags=["서브1 라우터"])
sub2_router = APIRouter(tags=["서브2 라우터"])

app.include_router(main_router, prefix="/api/main")
app.include_router(sub1_router, prefix="/api/main/sub1")
app.include_router(sub2_router, prefix="/api/main/sub1/sub2")

 

아래 그림과 같이 3개의 아코디언이 생성된다.

 

API Router 중첩 사용하기 2

만약 redoc에서 main, main/sub1 , main/sub1/sub2의 아코디언을 하나로 관리 하여 사용한다고 할 때는

다음과 같이 작성하여야 한다.

- tags를 main에만 붙여 redoc에서 하나의 아코디언이 생성된다.

- prefix를 하위만 붙여주면 된다. 

main_router = APIRouter(tags=["메인 라우터"])
sub1_router = APIRouter() # 태그 빼야 함
sub2_router = APIRouter() # 태그 빼야 함 !

sub1_router.include_router(sub2_router, prefix="/sub2")
main_router.include_router(sub1_router, prefix="/sub1")
app.include_router(main_router, prefix="/api/main")

 

다음과 같이 하나의 메인 라우터에 각 router의 메소드들이 한번에 나온다.