本文作者回顾了使用 GraphQL 六年的经验,从最初的推崇到最终放弃,详细阐述了 GraphQL 在安全、性能、维护性等方面的弊端。文章指出,GraphQL 的查询语言特性增加了攻击面,容易遭受授权攻击、速率限制攻击和查询解析攻击。此外,GraphQL 的数据获取和授权机制容易导致 N+1 问题,影响性能。作者还批评 GraphQL 代码库的复杂性,认为 REST API 更易于实现和理解。最后,作者推荐了 OpenAPI 3.0+ 规范和 TypeSpec 工具作为 GraphQL 的替代方案。