stream-fusion-old/stream_fusion/web/api/docs/views.py
LimeDrive 6fe4fe55f3 init
2024-07-09 04:13:29 +02:00

53 lines
1.4 KiB
Python

from fastapi import APIRouter, Request
from fastapi.openapi.docs import (
get_redoc_html,
get_swagger_ui_html,
get_swagger_ui_oauth2_redirect_html,
)
from fastapi.responses import HTMLResponse
router = APIRouter()
@router.get("/docs", include_in_schema=False)
async def swagger_ui_html(request: Request) -> HTMLResponse:
"""
Swagger UI.
:param request: current request.
:return: rendered swagger UI.
"""
title = request.app.title
return get_swagger_ui_html(
openapi_url=request.app.openapi_url,
title=f"{title} - Swagger UI",
oauth2_redirect_url=str(request.url_for("swagger_ui_redirect")),
swagger_js_url="/static/docs/swagger-ui-bundle.js",
swagger_css_url="/static/docs/swagger-ui.css",
)
@router.get("/swagger-redirect", include_in_schema=False)
async def swagger_ui_redirect() -> HTMLResponse:
"""
Redirect to swagger.
:return: redirect.
"""
return get_swagger_ui_oauth2_redirect_html()
@router.get("/redoc", include_in_schema=False)
async def redoc_html(request: Request) -> HTMLResponse:
"""
Redoc UI.
:param request: current request.
:return: rendered redoc UI.
"""
title = request.app.title
return get_redoc_html(
openapi_url=request.app.openapi_url,
title=f"{title} - ReDoc",
redoc_js_url="/static/docs/redoc.standalone.js",
)