Skip to content

Commit 97d108f

Browse files
JAB1305s-heppner
authored andcommitted
api/server/server_main.py: Add startup parameters
This allows each router to be enabled dynamically and undependently
1 parent 3b5ccfa commit 97d108f

File tree

1 file changed

+39
-9
lines changed

1 file changed

+39
-9
lines changed

api/server/server_main.py

Lines changed: 39 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import argparse
12
import uvicorn
23
from fastapi import FastAPI
34

@@ -15,14 +16,43 @@
1516
aas_registry_router = aas_registry_server.AasRegistryRouter(central_object_store)
1617
submodel_registry_router = submodel_registry_server.SubmodelRegistryRouter(central_object_store)
1718

18-
# Register router
19-
# TODO: This can be done dynamically based on startup params
20-
app.include_router(submodel_router.router, prefix=prefix + "/submodels")
21-
app.include_router(aasx_file_router.router, prefix=prefix + "/aasx")
22-
app.include_router(aas_registry_router.router, prefix=prefix + "/registry")
23-
app.include_router(submodel_registry_router.router, prefix=prefix + "/submodels")
24-
app.include_router(aas_router.router, prefix=prefix + "/aas")
19+
# Parse command-line arguments
20+
parser = argparse.ArgumentParser(description="Start the AAS Server with optional components")
21+
parser.add_argument("--enable-submodels", action="store_true", help="Enable submodels API")
22+
parser.add_argument("--enable-aasx", action="store_true", help="Enable AASX API")
23+
parser.add_argument("--enable-registry", action="store_true", help="Enable registry API")
24+
parser.add_argument("--enable-submodel-registry", action="store_true", help="Enable submodel registry API")
25+
parser.add_argument("--enable-aas", action="store_true", help="Enable AAS API")
2526

26-
# Start the server if this file is executed directly
27+
args = parser.parse_args()
28+
has_args = any(vars(args).values())
29+
30+
# Enable all by default if no arguments were passed
31+
if has_args:
32+
enable_submodels = args.enable_submodels
33+
enable_aasx = args.enable_aasx
34+
enable_registry = args.enable_registry
35+
enable_submodel_registry = args.enable_submodel_registry
36+
enable_aas = args.enable_aas
37+
else:
38+
enable_submodels = enable_aasx = enable_registry = enable_submodel_registry = enable_aas = True
39+
40+
# Conditional router registration
41+
if enable_submodels:
42+
app.include_router(submodel_router.router, prefix=prefix + "/submodels")
43+
44+
if enable_aasx:
45+
app.include_router(aasx_file_router.router, prefix=prefix + "/aasx")
46+
47+
if enable_registry:
48+
app.include_router(aas_registry_router.router, prefix=prefix + "/registry")
49+
50+
if enable_submodel_registry:
51+
app.include_router(submodel_registry_router.router, prefix=prefix + "/submodels")
52+
53+
if enable_aas:
54+
app.include_router(aas_router.router, prefix=prefix + "/aas")
55+
56+
# Run server (if needed)
2757
if __name__ == "__main__":
28-
uvicorn.run("server:app", host="127.0.0.1", port=8000, reload=True)
58+
uvicorn.run(app, host="0.0.0.0", port=8000)

0 commit comments

Comments
 (0)