38 lines
893 B
Python
38 lines
893 B
Python
|
|
"""FastAPI app for the yunke data-mirror viewing API.
|
||
|
|
|
||
|
|
Run locally with::
|
||
|
|
|
||
|
|
uvicorn app.api.main:app --reload
|
||
|
|
|
||
|
|
Includes:
|
||
|
|
* ``GET /api/health`` -> ``{"status": "ok"}`` liveness probe.
|
||
|
|
* ``GET /api/customers`` (see :mod:`app.api.routers.customer`).
|
||
|
|
|
||
|
|
CORS is configured permissively (wildcard origin, no credentials) so the local
|
||
|
|
frontend can call the API during development. Auth / finer CORS are LATER tasks.
|
||
|
|
"""
|
||
|
|
|
||
|
|
from __future__ import annotations
|
||
|
|
|
||
|
|
from fastapi import FastAPI
|
||
|
|
from fastapi.middleware.cors import CORSMiddleware
|
||
|
|
|
||
|
|
from app.api.routers import customer
|
||
|
|
|
||
|
|
app = FastAPI(title="yunke data mirror")
|
||
|
|
|
||
|
|
app.add_middleware(
|
||
|
|
CORSMiddleware,
|
||
|
|
allow_origins=["*"],
|
||
|
|
allow_methods=["*"],
|
||
|
|
allow_headers=["*"],
|
||
|
|
)
|
||
|
|
|
||
|
|
app.include_router(customer.router)
|
||
|
|
|
||
|
|
|
||
|
|
@app.get("/api/health")
|
||
|
|
async def health() -> dict[str, str]:
|
||
|
|
"""Trivial liveness probe."""
|
||
|
|
return {"status": "ok"}
|