🔺GraphQL vs OpenAPI📋
GraphQL 是带类型 schema 的查询语言,OpenAPI 是记录 REST API 的规范格式。一个是运行时,另一个是契约。
用 moomz 发起投票:谁赢?
moomz.com — 10秒、匿名、免费
🔺GraphQL
- ✓强类型 schema 兼作查询语言
- ✓客户端精确获取所需字段
- ✓带内置自省的自文档化
- ✓丰富的工具链和统一的单一端点
📋OpenAPI
- ✓精确记录标准 REST API
- ✓从单一文件生成客户端、服务端和文档
- ✓使用通用的 HTTP 和 REST 模型
- ✓所有语言都有庞大的工具支持
结论
灵活、类型化且客户端驱动的 API 就选 GraphQL。文档和工具生成传统 REST 服务就选 OpenAPI。
常见问题
GraphQL 和 OpenAPI 是竞争关系吗?+
某种程度上——GraphQL 是查询语言,OpenAPI 记录 REST,两者有重叠但不同。
哪个能生成客户端?+
两者都可以——OpenAPI 从规范文件生成,GraphQL 从 schema 生成。
哪个更容易缓存?+
OpenAPI 描述的 REST 利用 HTTP 自然缓存;GraphQL 需要主动的缓存策略。
其他语言