37 lines
1.2 KiB
Python
37 lines
1.2 KiB
Python
from anyio import Path
|
|
from fastapi import FastAPI
|
|
from fastapi.openapi.docs import (
|
|
get_redoc_html,
|
|
get_swagger_ui_html,
|
|
get_swagger_ui_oauth2_redirect_html,
|
|
)
|
|
from fastapi.staticfiles import StaticFiles
|
|
|
|
|
|
def apply(app: FastAPI):
|
|
app.mount(
|
|
"/docs/static", StaticFiles(directory=Path(__file__).parent.parent / "static/docs")
|
|
)
|
|
|
|
@app.get("/docs", include_in_schema=False)
|
|
async def custom_swagger_ui_html():
|
|
return get_swagger_ui_html(
|
|
openapi_url=app.openapi_url,
|
|
title=app.title + " - Swagger UI",
|
|
oauth2_redirect_url=app.swagger_ui_oauth2_redirect_url,
|
|
swagger_js_url="docs/static/swagger-ui-bundle.js",
|
|
swagger_css_url="docs/static/swagger-ui.css",
|
|
)
|
|
|
|
@app.get(app.swagger_ui_oauth2_redirect_url, include_in_schema=False)
|
|
async def swagger_ui_redirect():
|
|
return get_swagger_ui_oauth2_redirect_html()
|
|
|
|
@app.get("/redoc", include_in_schema=False)
|
|
async def redoc_html():
|
|
return get_redoc_html(
|
|
openapi_url=app.openapi_url,
|
|
title=app.title + " - ReDoc",
|
|
redoc_js_url="docs/static/redoc.standalone.js",
|
|
)
|