FAQ
🌐 问:为什么我的本地 OpenAPI 工具服务器无法从 WebUI 界面访问?
答: 如果你的工具服务器运行在本地,例如 http://localhost:8000,浏览器可能会因为 CORS(Cross-Origin Resource Sharing)策略而阻止访问。
你需要在 OpenAPI 服务器里显式开启 CORS。例如使用 FastAPI 时,可以这样配置:
from fastapi.middleware.cors import CORSMiddleware
app.add_middleware(
CORSMiddleware,
allow_origins=["*"], # 或者填你的实际前端来源
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)另外,如果 OPL 数据空间本身通过 HTTPS 提供服务,例如 https://yourdomain.com,那么你的本地服务还需要满足以下条件之一:
- 通过同域 HTTPS 访问
- 或运行在
localhost/127.0.0.1,让浏览器在本地开发场景下放宽限制 - 否则浏览器可能因为 mixed content 规则而阻止从 HTTPS 页面访问 HTTP API
在生产环境下,如果 OPL 数据空间跑在 HTTPS 上,OpenAPI 服务器也应尽量跑在 HTTPS 上。
🚀 问:一定要用 FastAPI 吗?
答: 不需要。参考实现用 FastAPI 只是为了易读和易用。任何能暴露合法 OpenAPI(Swagger)规范的框架或语言都可以,例如:
- FastAPI
- Flask + Flask-RESTX
- Express + Swagger UI
- Spring Boot
- Go + Swag / Echo
核心要求是:
- 对外提供有效的 OpenAPI schema
- 通过 HTTP(S) 通信
- 为所有 endpoint 明确设置
operationId