mirror of
https://gh-proxy.org/https://github.com/klinsmaya/SQLBot.git
synced 2026-11-08 01:06:59 +08:00
perf: Add API documentation toggle control
This commit is contained in:
committed by
fit2cloud-chenyw
parent
936bb5d390
commit
dc2b0788f4
@@ -75,6 +75,8 @@ class Settings(BaseSettings):
|
||||
SCRIPT_DIR: str = f"{BASE_DIR}/scripts"
|
||||
UPLOAD_DIR: str = "/opt/sqlbot/data/file"
|
||||
SQLBOT_KEY_EXPIRED: int = 100 # License key expiration timestamp, 0 means no expiration
|
||||
|
||||
SQLBOT_DOC_ENABLED: bool = True
|
||||
|
||||
@computed_field # type: ignore[prop-decorator]
|
||||
@property
|
||||
|
||||
+18
-17
@@ -70,7 +70,7 @@ def custom_generate_unique_id(route: APIRoute) -> str:
|
||||
|
||||
app = FastAPI(
|
||||
title=settings.PROJECT_NAME,
|
||||
openapi_url=f"{settings.CONTEXT_PATH}/openapi.json",
|
||||
openapi_url=f"{settings.CONTEXT_PATH}/openapi.json" if settings.SQLBOT_DOC_ENABLED else None,
|
||||
generate_unique_id_function=custom_generate_unique_id,
|
||||
lifespan=lifespan,
|
||||
docs_url=None,
|
||||
@@ -152,24 +152,25 @@ def generate_openapi_for_lang(lang: str) -> Dict[str, Any]:
|
||||
|
||||
|
||||
# custom /openapi.json and /docs
|
||||
@app.get(f"{settings.CONTEXT_PATH}/openapi.json", include_in_schema=False)
|
||||
async def custom_openapi(request: Request):
|
||||
lang = get_language_from_request(request)
|
||||
schema = generate_openapi_for_lang(lang)
|
||||
return JSONResponse(schema)
|
||||
if settings.SQLBOT_DOC_ENABLED:
|
||||
@app.get(f"{settings.CONTEXT_PATH}/openapi.json", include_in_schema=False)
|
||||
async def custom_openapi(request: Request):
|
||||
lang = get_language_from_request(request)
|
||||
schema = generate_openapi_for_lang(lang)
|
||||
return JSONResponse(schema)
|
||||
|
||||
|
||||
@app.get(f"{settings.CONTEXT_PATH}/docs", include_in_schema=False)
|
||||
async def custom_swagger_ui(request: Request):
|
||||
lang = get_language_from_request(request)
|
||||
from fastapi.openapi.docs import get_swagger_ui_html
|
||||
return get_swagger_ui_html(
|
||||
openapi_url=f"./openapi.json?lang={lang}",
|
||||
title="SQLBot API Docs",
|
||||
swagger_favicon_url="https://fastapi.tiangolo.com/img/favicon.png",
|
||||
swagger_js_url="./swagger-ui-bundle.js",
|
||||
swagger_css_url="./swagger-ui.css",
|
||||
)
|
||||
@app.get(f"{settings.CONTEXT_PATH}/docs", include_in_schema=False)
|
||||
async def custom_swagger_ui(request: Request):
|
||||
lang = get_language_from_request(request)
|
||||
from fastapi.openapi.docs import get_swagger_ui_html
|
||||
return get_swagger_ui_html(
|
||||
openapi_url=f"./openapi.json?lang={lang}",
|
||||
title="SQLBot API Docs",
|
||||
swagger_favicon_url="https://fastapi.tiangolo.com/img/favicon.png",
|
||||
swagger_js_url="./swagger-ui-bundle.js",
|
||||
swagger_css_url="./swagger-ui.css",
|
||||
)
|
||||
|
||||
|
||||
mcp_app = FastAPI()
|
||||
|
||||
Reference in New Issue
Block a user