From c6addbf63c93ea778a91d7ee65eea3b0ec4fa276 Mon Sep 17 00:00:00 2001 From: Dan Jones <danjon@noc.ac.uk> Date: Thu, 22 Aug 2024 09:43:20 +0100 Subject: [PATCH] fix: remove definitions from raw schema This is a workaround until a new version of Flasgger is released. --- generate_schema_config.py | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/generate_schema_config.py b/generate_schema_config.py index a7bc202..35a19de 100644 --- a/generate_schema_config.py +++ b/generate_schema_config.py @@ -114,10 +114,30 @@ def serve(): """ Run as local flask app on port 5000 """ + # Replace schema route to remove invalid + # definitions: {} + # Should be fixed if Flassger 0.9.7 is released + # + # The last release of flasgger was Aug 2020 + # This bug was fixed in Nov 2021 + # There is a pre-release from May 2023 + # Until the fix gets released we have to + # remove the invalid definitions object + # from the spec app = Flask(__name__) Swagger(app, config=swagger_config, merge=True) - app.run(debug=False, host=FLASK_HOST, port=FLASK_PORT) + @app.after_request + def after_request_decorator(response): + if type(response).__name__ == 'Response': + if response.content_type == 'application/json': + data = response.json + if 'definitions' in data: + del data['definitions'] + response.data = json.dumps(data) + + return response + app.run(debug=True, host=FLASK_HOST, port=FLASK_PORT) def compile_schema(swagger_config): @@ -136,13 +156,6 @@ def compile_schema(swagger_config): client = app.test_client() response = client.get(route) spec = response.json - # The last release of flasgger was Aug 2020 - # This bug was fixed in Nov 2021 - # There is a pre-release from May 2023 - # Until the fix gets released we have to - # remove the invalid definitions object - # from the spec - del spec['definitions'] return spec -- GitLab