I decided to make a micro-services gateway in Python's FastApi framework. My authorization service is written in Django and there are already generated by drf-yasg
package swagger docs. I was thinking if there is a way to somehow import auth's schema to the gateway. I can serve the schema in json
format via http and access it from the gateway. The question is how to integrate FastApi's docs with raw swagger schema file.
How to extend FastAPI docs with another swagger docs?
According to docs you can modify the openAPI json.
Example:
from fastapi import FastAPI
from fastapi.openapi.utils import get_openapi
app = FastAPI()
@app.get("/items/")
async def read_items():
return [{"name": "Foo"}]
def custom_openapi():
if app.openapi_schema:
return app.openapi_schema
openapi_schema = get_openapi(
title="Custom title",
version="2.5.0",
description="This is a very custom OpenAPI schema",
routes=app.routes,
)
openapi_schema["paths"]["/api/auth"] = {
"post": {
"requestBody": {"content": {"application/json": {}}, "required": True}, "tags": ["Auth"]
}
}
app.openapi_schema = openapi_schema
return app.openapi_schema
app.openapi = custom_openapi
Result:
© 2022 - 2024 — McMap. All rights reserved.