그누보드6 플러그인 api swagger

그누보드6 플러그인 api swagger

QA

그누보드6 플러그인 api swagger

본문

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

 

이 질문에 댓글 쓰기 :

답변 1

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

 

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

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

 


# 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__,
    }
답변을 작성하시기 전에 로그인 해주세요.
전체 222
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT