답변 1개
채택된 답변
+20 포인트
녹두탐
Expert
1년 전
'include_router' 메서드의 'include_in_schema' 옵션을 True(기본값)로 설정하면 swagger UI에 출력됩니다.
'{플러그인 경로}/admin/__init__.py' 와 '{플러그인 경로}/user/__init__.py'에서 확인 하실 수 있으며,
각 개별 라우터에서도 동일한 옵션을 설정할 수 있습니다.
</p>
<p># plugin\demo_plugin\admin\__init__.py</p>
<p>def register_admin_router():</p>
<p> """관리자에 플러그인 관리자 메뉴를 등록합니다.</p>
<p> </p>
<p> Examples:</p>
<p> 관리자는 Depends(check_admin_access) 의존성을 추가 해야 접근권한이 보호됩니다.</p>
<p> 아래 관리자 라우터의 prefix 는 빈칸이면 안됩니다. 기본값은 /admin 입니다.</p>
<p> """</p>
<p> app.include_router(admin_router, prefix="/admin", tags=[module_name], dependencies=[Depends(check_admin_access)], include_in_schema=False)</p>
<p> </p>
<p> </p>
<p># plugin\demo_plugin\user\__init__.py</p>
<p>def register_user_router():</p>
<p> app.include_router(router,</p>
<p> prefix=router_prefix,</p>
<p> tags=[module_name],</p>
<p> include_in_schema=False,</p>
<p> dependencies=[Depends(check_use_template),</p>
<p> Depends(set_template_basic_data)])</p>
<p> </p>
<p> </p>
<p># plugin\demo_plugin\admin\admin_router.py</p>
<p>@admin_router.get("/test_demo_admin",</p>
<p> include_in_schema=True) # 각 라우터에 개별적으로 설정 가능</p>
<p>async def show(request: Request):</p>
<p> request.session["menu_key"] = module_name</p>
<p> request.session["plugin_submenu_key"] = module_name + "1"</p>
<p> </p>
<p> return {</p>
<p> "message": "Hello Admin Demo Plugin!",</p>
<p> "pacakge": __package__,</p>
<p> "__file__": __file__,</p>
<p> "__name__": __name__,</p>
<p> }</p>
<p>
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인