RESTful API 关心"接口怎么设计",OpenAPI 关心"接口怎么描述"。 它们可以一起使用。
| 对比 | RESTful API | OpenAPI |
|---|---|---|
| 是什么 | 遵循 REST 架构风格的 API | 描述 HTTP API 的标准规范 |
| 关注什么 | 资源、操作方式、无状态等设计原则 | 路径、参数、请求体、响应、认证等 |
| 表现形式 | 实际接口的设计和行为 | JSON 或 YAML 格式的接口说明 |
| 用途 | 组织和提供服务 | 生成文档、客户端代码,支持测试 |
REST 是一种架构风格;OpenAPI 是机器和人都能读取的接口描述规范。REST 原始定义、OpenAPI 官方规范
例如,设计一个用户接口:
GET /users/123 获取用户
POST /users 创建用户
DELETE /users/123 删除用户
这是常见的 REST 风格设计:路径表示资源,HTTP 方法表示操作。
而用 OpenAPI 描述它时,会记录:
路径:/users/{user_id}
方法:GET
参数:user_id,整数,必填
成功响应:200,返回用户信息
失败响应:404,用户不存在
结合你现在的 FastAPI 项目:
/:实际业务接口,访问后返回{"message": "Hello World"}。/openapi.json:FastAPI 自动生成的 OpenAPI 接口说明。/docs:Swagger UI 把这份说明展示成可交互的文档页面。FastAPI 文档
有 OpenAPI 文档,不代表接口就一定符合 REST;RESTful API 也可以没有 OpenAPI 文档。