From 29b08875d4d7f9f469167faa48bab4af700ce8c3 Mon Sep 17 00:00:00 2001 From: Jack Michaud Date: Sun, 1 Jan 2023 12:34:03 -0500 Subject: [PATCH] refactor: move print_openapi_schema into main --- backend/main.py | 30 +++++++++++++++++++ backend/print_openapi_schema.py | 12 -------- .../backend-development/start-mock-server.sh | 2 +- 3 files changed, 31 insertions(+), 13 deletions(-) delete mode 100644 backend/print_openapi_schema.py diff --git a/backend/main.py b/backend/main.py index 387d4e51..9cf43701 100644 --- a/backend/main.py +++ b/backend/main.py @@ -179,3 +179,33 @@ if settings.DEBUG_USE_SEED_DATA: app.include_router(api_router, prefix=settings.API_V1_STR) + + +def get_openapi_schema(): + return json.dumps(app.openapi()) + + +if __name__ == "__main__": + # Importing here so we don't import packages unnecessarily if we're + # importing main as a module. + import argparse + import json + + import uvicorn + + parser = argparse.ArgumentParser() + + parser.add_argument( + "--print-openapi-schema", + help="Dumps the openapi schema to stdout", + action=argparse.BooleanOptionalAction, + ) + parser.add_argument("--host", help="The host to run the server") + parser.add_argument("--port", help="The port to run the server") + + args = parser.parse_args() + + if args.print_openapi_schema: + print(get_openapi_schema()) + else: + uvicorn.run(app, host=args.host, port=args.port) diff --git a/backend/print_openapi_schema.py b/backend/print_openapi_schema.py deleted file mode 100644 index e724cc7e..00000000 --- a/backend/print_openapi_schema.py +++ /dev/null @@ -1,12 +0,0 @@ -# -*- coding: utf-8 -*- -import json - -from main import app - - -def get_openapi_schema(): - return json.dumps(app.openapi()) - - -if __name__ == "__main__": - print(get_openapi_schema()) diff --git a/scripts/backend-development/start-mock-server.sh b/scripts/backend-development/start-mock-server.sh index e27f532e..35a202a6 100755 --- a/scripts/backend-development/start-mock-server.sh +++ b/scripts/backend-development/start-mock-server.sh @@ -8,7 +8,7 @@ MOCK_SERVER_PORT=8080 OPENAPI_JSON_FILE_NAME=openapi.json echo "Generating OpenAPI schema..." -python -m print_openapi_schema > $OPENAPI_JSON_FILE_NAME +python -m main --print-openapi-schema > $OPENAPI_JSON_FILE_NAME echo "Done!" # If oasst-mock-backend docker container is already running,