summaryrefslogtreecommitdiff
path: root/services/api/src/trading_api/main.py
diff options
context:
space:
mode:
authorTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2026-04-01 17:25:54 +0900
committerTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2026-04-01 17:25:54 +0900
commite10d4a96e062818cb2395add1746c733a053c374 (patch)
treebbd222cd840d2c7fc58d3109362fb1b0c00aee26 /services/api/src/trading_api/main.py
parent21c6b777530b4a027aec9c12bf63092e5a7c006d (diff)
feat: add FastAPI REST API service
Diffstat (limited to 'services/api/src/trading_api/main.py')
-rw-r--r--services/api/src/trading_api/main.py34
1 files changed, 34 insertions, 0 deletions
diff --git a/services/api/src/trading_api/main.py b/services/api/src/trading_api/main.py
new file mode 100644
index 0000000..61cfe36
--- /dev/null
+++ b/services/api/src/trading_api/main.py
@@ -0,0 +1,34 @@
+"""Trading Platform REST API."""
+from contextlib import asynccontextmanager
+
+from fastapi import FastAPI
+
+from shared.config import Settings
+from shared.db import Database
+
+from trading_api.routers import portfolio, orders, strategies
+
+
+@asynccontextmanager
+async def lifespan(app: FastAPI):
+ settings = Settings()
+ app.state.db = Database(settings.database_url)
+ await app.state.db.connect()
+ yield
+ await app.state.db.close()
+
+
+app = FastAPI(
+ title="Trading Platform API",
+ version="0.1.0",
+ lifespan=lifespan,
+)
+
+app.include_router(portfolio.router, prefix="/api/v1/portfolio", tags=["portfolio"])
+app.include_router(orders.router, prefix="/api/v1/orders", tags=["orders"])
+app.include_router(strategies.router, prefix="/api/v1/strategies", tags=["strategies"])
+
+
+@app.get("/health")
+async def health():
+ return {"status": "ok"}