API设计模式
API Design Patterns
REST API与Web UI双入口设计,支持多格式响应和安全防护
子问题
1.多格式响应
2.文件上传处理
3.路径遍历防护
4.临时文件清理
5.进程内并发限流与 503 快速拒绝
6.OpenAPI 文档端点的生产环境安全管控
7.双入口(REST+WebUI)共享核心逻辑的架构设计
各项目的解法1 solutions
Signals
横向对比
| 维度 | MinerU |
|---|---|
| API框架 | FastAPI + Gradio 双入口,共享 aio_do_parse 核心 |
| 响应格式 | JSON/ZIP 双格式,6 个布尔参数按需控制返回字段 |
| 并发控制 | asyncio.Semaphore 进程内信号量,环境变量配置,超限 503 快速拒绝 |
| 文件安全 | 双层正则消毒 + 隐藏文件禁止 + UUID 目录隔离 |
| 临时文件管理 | BackgroundTasks 延迟清理,响应发送后自动删除 |
| 文档开关 | 环境变量控制 OpenAPI/docs/redoc 端点暴露 |
| 压缩策略 | GZipMiddleware 1000 字节阈值 + ZIP_DEFLATED 打包 |
最佳实践
1.提供JSON和ZIP双格式响应满足不同消费场景
2.用 asyncio.Semaphore + Depends 注入实现零外部依赖的并发控制
3.BackgroundTasks 延迟清理确保 FileResponse 先发送再删除临时文件
4.环境变量控制 OpenAPI 文档暴露减少生产环境攻击面