Select Git revision
gen_open_api_schema.py
gen_open_api_schema.py 1.19 KiB
import json
import yaml
from fastapi import FastAPI
from fastapi.openapi.utils import get_openapi
from fastapi.routing import APIRoute
from app.main import app
def use_route_names_as_operation_ids(app: FastAPI) -> None:
"""
Simplify operation IDs so that generated API clients have simpler function
names.
Should be called only after all routes have been added.
"""
for route in app.routes:
if isinstance(route, APIRoute):
route.operation_id = route.name
use_route_names_as_operation_ids(app)
with open('openapi.yaml', 'w') as f:
yaml.dump(get_openapi(
title=app.title,
version=app.version,
openapi_version=app.openapi_version,
description=app.description,
routes=app.routes
), f)
with open('openapi.json', 'w') as f:
json.dump(get_openapi(
title=app.title,
version=app.version,
openapi_version=app.openapi_version,
description=app.description,
routes=app.routes
), f)
with open('standalone-mapping-schema.yaml', 'w') as f:
from mitm_tooling.extraction.sql.mapping import StandaloneDBMapping
yaml.dump(StandaloneDBMapping.model_json_schema(by_alias=True), f)