diff options
| author | TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> | 2026-04-01 17:25:54 +0900 |
|---|---|---|
| committer | TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> | 2026-04-01 17:25:54 +0900 |
| commit | e10d4a96e062818cb2395add1746c733a053c374 (patch) | |
| tree | bbd222cd840d2c7fc58d3109362fb1b0c00aee26 /services/api/src/trading_api/main.py | |
| parent | 21c6b777530b4a027aec9c12bf63092e5a7c006d (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.py | 34 |
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"} |
