Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 39 additions & 9 deletions api/server/server_main.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import argparse
import uvicorn
from fastapi import FastAPI

Expand All @@ -15,14 +16,43 @@
aas_registry_router = aas_registry_server.AasRegistryRouter(central_object_store)
submodel_registry_router = submodel_registry_server.SubmodelRegistryRouter(central_object_store)

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

# Start the server if this file is executed directly
args = parser.parse_args()
has_args = any(vars(args).values())

# Enable all by default if no arguments were passed
if has_args:
enable_submodels = args.enable_submodels
enable_aasx = args.enable_aasx
enable_registry = args.enable_registry
enable_submodel_registry = args.enable_submodel_registry
enable_aas = args.enable_aas
else:
enable_submodels = enable_aasx = enable_registry = enable_submodel_registry = enable_aas = True

# Conditional router registration
if enable_submodels:
app.include_router(submodel_router.router, prefix=prefix + "/submodels")

if enable_aasx:
app.include_router(aasx_file_router.router, prefix=prefix + "/aasx")

if enable_registry:
app.include_router(aas_registry_router.router, prefix=prefix + "/registry")

if enable_submodel_registry:
app.include_router(submodel_registry_router.router, prefix=prefix + "/submodels")

if enable_aas:
app.include_router(aas_router.router, prefix=prefix + "/aas")

# Run server (if needed)
if __name__ == "__main__":
uvicorn.run("server:app", host="127.0.0.1", port=8000, reload=True)
uvicorn.run(app, host="0.0.0.0", port=8000)