main.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. from fastapi import FastAPI
  2. from .api import vector, raster
  3. from .database import engine, Base
  4. from fastapi.middleware.cors import CORSMiddleware
  5. # 创建数据库表
  6. Base.metadata.create_all(bind=engine)
  7. app = FastAPI(
  8. title="地图数据处理系统",
  9. description="一个用于处理地图数据的API系统",
  10. version="1.0.0",
  11. openapi_tags=[
  12. {
  13. "name": "vector",
  14. "description": "矢量数据相关接口",
  15. },
  16. {
  17. "name": "raster",
  18. "description": "栅格数据相关接口",
  19. }
  20. ]
  21. )
  22. # ---------------------------
  23. # 添加 CORS 配置(关键修改)
  24. # ---------------------------
  25. app.add_middleware(
  26. CORSMiddleware,
  27. allow_origins=["https://soilgd.com"], # 允许的前端域名(需与前端实际域名一致)
  28. allow_methods=["*"], # 允许的 HTTP 方法(GET/POST/PUT/DELETE等)
  29. allow_headers=["*"], # 允许的请求头
  30. allow_credentials=True, # 允许携带 Cookie(如需)
  31. )
  32. # 注册路由
  33. app.include_router(vector.router, prefix="/api/vector", tags=["vector"])
  34. app.include_router(raster.router, prefix="/api/raster", tags=["raster"])
  35. @app.get("/")
  36. async def root():
  37. return {"message": "Welcome to the GIS Data Management API"}
  38. # if __name__ == "__main__":
  39. # import uvicorn
  40. # uvicorn.run(app, host="0.0.0.0", port=8000)