GraphQL 与 REST 取舍

REST 用固定资源接口与 HTTP 缓存语义,生态成熟;GraphQL 由客户端决定字段,聚合场景灵活但服务端复杂度更高。按消费方形态与治理能力选择。

维度

维度RESTGraphQL
取数方式固定资源表述客户端声明字段
缓存HTTP 缓存成熟需应用层缓存与持久化查询
版本与演进版本化或兼容扩展模式演进,废弃字段
治理按路径限流简单按复杂度限流复杂
两者可并存:对外开放接口用 REST,内部前端聚合层用 GraphQL 是常见组合。

易错点

  • 为单一前端引入 GraphQL,治理成本高于收益
  • 模式字段随意增删,客户端契约稳定性受损

数据来源与参考

  • GraphQL 官方文档:Introduction
  • 《Designing Web APIs》(Jin & Sahni)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌