mirror of
https://github.com/dograh-hq/dograh.git
synced 2026-06-07 07:55:16 +02:00
39 lines
964 B
Python
39 lines
964 B
Python
"""Dump the FastAPI OpenAPI spec to docs/api-reference/openapi.json.
|
|
|
|
Run from the repo root with the api environment available:
|
|
|
|
python -m scripts.dump_docs_openapi
|
|
|
|
CI uses this to detect drift: it dumps the spec and asserts the file is
|
|
unchanged versus what's checked in.
|
|
"""
|
|
|
|
import json
|
|
from pathlib import Path
|
|
|
|
from loguru import logger
|
|
|
|
logger.remove()
|
|
|
|
from fastapi.openapi.utils import get_openapi # noqa: E402
|
|
|
|
from api.app import app # noqa: E402
|
|
|
|
REPO_ROOT = Path(__file__).resolve().parent.parent
|
|
OUTPUT = REPO_ROOT / "docs" / "api-reference" / "openapi.json"
|
|
|
|
|
|
def main() -> None:
|
|
spec = get_openapi(
|
|
title=app.title,
|
|
version=app.version,
|
|
description=app.description,
|
|
routes=app.routes,
|
|
servers=app.servers,
|
|
)
|
|
OUTPUT.write_text(json.dumps(spec, separators=(",", ":")))
|
|
print(f"Wrote {len(spec['paths'])} paths to {OUTPUT.relative_to(REPO_ROOT)}")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|