GraphQL 能为您的 API 做什么?
无论是嵌入现有应用程序,还是从一开始就作为应用程序架构的组成部分,API 都是开发人员工具库中一个强大的工具。如果正确实施,它在设计用户体验、软件组件之间通信以及提供构建模块本身方面将发挥至关重要的作用。
然而,不令人满意的 API 可能成为一种诅咒而不是祝福:
- 这可能会推高成本,
- 出现安全问题,
- 增加了项目的复杂性并降低了整体的易用性
让我们来看看GraphQL如何帮助避免制作 API 时的一些陷阱。
模式作为事实来源
如果没有精心规划,API 架构可能会因不断增加的管理和基础设施成本而开始亏损。GraphQL 通过强制其开发人员准备明确定义的模式(GraphQL 编辑器非常有用),同时将返回的数据量限制在特定请求范围内来解决此问题。设计模式应该融合众多 API 开发人员或使用 API 的人员的各种想法,以创建广泛的潜在用例。由于模式会通过弃用某些字段和添加新字段自然演进,这使得 GraphQL 成为应对臃肿繁琐 API 的优雅解决方案。前面提到的缩小数据返回范围解决了常见的过度获取问题。
资料来源:undraw.co
GraphQL 让一切更简单
潜在开发者可能遇到的另一个令人头疼的问题是过度的复杂性以及繁琐的文档。了解某些事物在特定条件下的行为方式以及其以特定方式运作的原因至关重要。如果开发者无法在 API 的文档中找到所需的答案,那么这几乎是不可能的,或者至少是不划算的。GraphQL 已被编程界的众多社区采用,其优势在于其拥有不断增长且高度活跃的开发者群体。这极大地提升了潜在工程师的体验,因为它使找到合适的工具变得非常简单。
安全
安全性是需要考虑的因素。API 很可能被某些人利用,成为提取敏感数据或以其他方式损害应用程序的潜在途径。允许此类恶意攻击影响目标用户,会严重损害程序员的信誉。虽然 GraphQL 允许将可能的查询范围限制在预先设置的白名单内,但还有其他更灵活的方法来处理这个问题。设置特定时间段内请求数量的上限是预防 DDoS 攻击的常用措施。
资料来源:undraw.co
结论
GraphQL 的本质似乎解决了困扰众多其他 API 的诸多问题。此外,如果出现任何其他问题,围绕该查询语言的丰富而活跃的社区肯定已经解决了这些问题。这些因素共同作用,使得 GraphQL 在 API 实现方面成为一个极具吸引力的选择。
来自Carl Matte 的GraphQL 编辑器博客的客座博客文章;资料来源: MarvelApp.com、Netlify.com、Devops.com
加速您的 GraphQL API 开发
GraphQL 编辑器是一款支持工具,既适用于高级GraphQL 用户,也适用于 GraphQL API 新手。我们一体化的 GraphQL 开发环境内置了数十项微功能,可帮助您更快地构建、管理和部署GraphQL API 。
文章来源:https://dev.to/graphqleditor/what-can-graphql-do-for-your-api-1d55