From f71439837e40304bb12d13345485225ee1222e59 Mon Sep 17 00:00:00 2001
From: Erik Reid <erik.reid@geant.org>
Date: Tue, 21 Mar 2023 07:10:35 +0100
Subject: [PATCH] utility for dumping openapi spec

---
 docs/dump-openapi-spec.py | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)
 create mode 100644 docs/dump-openapi-spec.py

diff --git a/docs/dump-openapi-spec.py b/docs/dump-openapi-spec.py
new file mode 100644
index 0000000..9fa003c
--- /dev/null
+++ b/docs/dump-openapi-spec.py
@@ -0,0 +1,22 @@
+import json
+import os
+import sys
+
+from fastapi.testclient import TestClient
+import resource_management
+
+config_filename = os.path.join(
+    os.path.dirname(__file__),
+    '..', 'config-example.json')
+
+os.environ['SETTINGS_FILENAME'] = config_filename
+app = resource_management.create_app()
+client = TestClient(app)
+rsp = client.get('/openapi.json')
+openapi_doc = json.dumps(rsp.json(), indent=2)
+
+if len(sys.argv) > 1 and sys.argv[1]:
+    with open(sys.argv[1], 'w') as output:
+        output.write(openapi_doc)
+else:
+    print(openapi_doc)
-- 
GitLab