|
| 1 | +import argparse |
1 | 2 | import uvicorn |
2 | 3 | from fastapi import FastAPI |
3 | 4 |
|
|
15 | 16 | aas_registry_router = aas_registry_server.AasRegistryRouter(central_object_store) |
16 | 17 | submodel_registry_router = submodel_registry_server.SubmodelRegistryRouter(central_object_store) |
17 | 18 |
|
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") |
25 | 26 |
|
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) |
27 | 57 | 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