33 lines
783 B
Python
33 lines
783 B
Python
import json
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
import yaml
|
|
|
|
PROJECT_ROOT = Path(__file__).resolve().parents[1]
|
|
if str(PROJECT_ROOT) not in sys.path:
|
|
sys.path.insert(0, str(PROJECT_ROOT))
|
|
|
|
from app.main import create_app
|
|
|
|
|
|
def main() -> None:
|
|
app = create_app()
|
|
output_dir = PROJECT_ROOT / "openapi"
|
|
output_dir.mkdir(parents=True, exist_ok=True)
|
|
|
|
schema = app.openapi()
|
|
|
|
json_path = output_dir / "openapi.json"
|
|
yaml_path = output_dir / "openapi.yaml"
|
|
|
|
json_path.write_text(json.dumps(schema, ensure_ascii=False, indent=2), encoding="utf-8")
|
|
yaml_path.write_text(yaml.safe_dump(schema, allow_unicode=True, sort_keys=False), encoding="utf-8")
|
|
|
|
print(f"Wrote {json_path}")
|
|
print(f"Wrote {yaml_path}")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|