From fea8c6971c2fbb05cfe4f1542f455d9eb40249fa Mon Sep 17 00:00:00 2001 From: iammm0 Date: Wed, 7 Jan 2026 11:56:26 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0API=E4=B8=BB=E5=85=A5?= =?UTF-8?q?=E5=8F=A3=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/main.py | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 api/main.py diff --git a/api/main.py b/api/main.py new file mode 100644 index 0000000..cff24ec --- /dev/null +++ b/api/main.py @@ -0,0 +1,44 @@ +""" +FastAPI 应用入口 +""" +import os +from dotenv import load_dotenv + +from fastapi import FastAPI +from fastapi.middleware.cors import CORSMiddleware + +# 加载环境变量 +load_dotenv() + +from database import init_db +from routers import websocket, chapters, books, conversations + +# 初始化数据库 +init_db() + +app = FastAPI(title="Life Echo API", version="1.0.0") + +# CORS 配置 +app.add_middleware( + CORSMiddleware, + allow_origins=["*"], # 生产环境应该限制域名 + allow_credentials=True, + allow_methods=["*"], + allow_headers=["*"], +) + +# 注册路由 +app.websocket("/ws/conversation/{conversation_id}")(websocket.websocket_endpoint) +app.include_router(conversations.router) +app.include_router(chapters.router) +app.include_router(books.router) + + +@app.get("/") +async def root(): + return {"message": "Life Echo API", "version": "1.0.0"} + + +@app.get("/health") +async def health(): + return {"status": "ok"}