2024-05-30
六年后,我为何不再使用 GraphQL?
- 作者分享了使用 GraphQL 的六年经验,最初指出了 GraphQL 相对于无类型 JSON REST API 的优势,但最终指出了 GraphQL 的重大缺陷。
- GraphQL 的主要问题包括攻击面扩大、授权复杂、速率限制难题、查询解析漏洞以及 N+1 等性能问题。
- 作者建议考虑使用符合 OpenAPI 标准的 JSON REST API 和 FastAPI、tsoa 和 TypeSpec 等现代工具,以便更高效、更安全地开发 API。
反应
- 在使用 GraphQL 六年后,作者发现它过于复杂,尤其是在权限、性能和调试方面,他建议传统的 REST 端点可能更有效。
- 讨论突出了将 GraphQL 与后端系统集成的挑战,强调了详细知识和文档的必要性,并提出了服务器端查询构建器和模式优先设计等解决方案。
- 这场辩论将 GraphQL 的灵活性和高效嵌套查询与 REST 的简单性和可靠性进行了对比,并指出应根据项目的具体需求和成熟度在两者之间做出选择。