그누보드6 플러그인 api swagger 채택완료

플러그인의 유저 라우터에 등록한 api는 swagger에 나오지 않는데 혹시 나오게 하는방법 있을까요?

 

답변 1개

채택된 답변
+20 포인트

'include_router' 메서드의 'include_in_schema' 옵션을 True(기본값)로 설정하면 swagger UI에 출력됩니다.

 

'{플러그인 경로}/admin/__init__.py' 와 '{플러그인 경로}/user/__init__.py'에서 확인 하실 수 있으며,

각 개별 라우터에서도 동일한 옵션을 설정할 수 있습니다.

 

Copy
# plugin\demo_plugin\admin\__init__.py

def register_admin_router():

    """관리자에 플러그인 관리자 메뉴를 등록합니다.

 

    Examples:

        관리자는 Depends(check_admin_access) 의존성을 추가 해야 접근권한이 보호됩니다.

        아래 관리자 라우터의 prefix 는 빈칸이면 안됩니다. 기본값은 /admin 입니다.

    """

    app.include_router(admin_router, prefix="/admin", tags=[module_name], dependencies=[Depends(check_admin_access)], include_in_schema=False)

 

 

# plugin\demo_plugin\user\__init__.py

def register_user_router():

    app.include_router(router,

                       prefix=router_prefix,

                       tags=[module_name],

                       include_in_schema=False,

                       dependencies=[Depends(check_use_template),

                                     Depends(set_template_basic_data)])

 

 

# plugin\demo_plugin\admin\admin_router.py

@admin_router.get("/test_demo_admin",

                          include_in_schema=True)  # 각 라우터에 개별적으로 설정 가능

async def show(request: Request):

    request.session["menu_key"] = module_name

    request.session["plugin_submenu_key"] = module_name + "1"

 

    return {

        "message": "Hello Admin Demo Plugin!",

        "pacakge": __package__,

        "__file__": __file__,

        "__name__": __name__,

    }
로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고