RESTful 还是 GraphQL?谈谈我们在复杂多端数据聚合场景下的选型思考
关于 API 架构的争论从未停止。在经历过几个大型项目后,我对两者的适用场景有了更具象的认识:
- RESTful:天然的 HTTP 缓存(Cache-Control / ETag)、简单可预期、网络链路排查容易、与各大监控平台契合度高;
- GraphQL:灵活的字段声明按需获取、天然聚合多微服务接口,但 N+1 查询问题严重,且 HTTP 缓存机制失效。
最终我们的方案是:核心业务与资源 API 严格遵循 RESTful 规范;在移动端或特定聚合页面通过 BFF 层完成裁切与组装。