问题域/PD-356

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 文档暴露减少生产环境攻击面