
REST
- 使用标准 HTTP 方法(如 GET、POST、PUT、DELETE)进行 CRUD 操作。
- 当您需要单独的服务/应用程序之间简单、统一的接口时,它可以很好地发挥作用。
- 缓存策略很容易实现。
- 缺点是可能需要多次往返才能从不同的端点收集相关数据。
GraphQL
- 为客户提供单一端点,以便其精确查询所需的数据。
- 客户端指定嵌套查询中所需的精确字段,服务器返回仅包含这些字段的优化负载。
- 支持修改数据的变异和实时通知的订阅。
- 非常适合聚合来自多个来源的数据,并且可以很好地满足快速发展的前端需求。
- 然而,它将复杂性转移到了客户端,如果没有得到适当的保护,可能会允许滥用查询
- 缓存策略可能比 REST 更复杂。
总结
用 REST API:
- 如果你的应用程序需要简单的 CRUD 操作,且数据结构相对固定。
- 如果你需要利用 HTTP 的缓存机制。
使用 GraphQL:
- 如果你的应用程序需要灵活的数据获取,且客户端需要不同的数据组合。
- 如果你希望减少网络请求次数,提高数据传输效率。