这里推荐一篇实用的文章:《案例分享 | 大数据传输中的二进制加密方案》,作者:【叫我阿柒啊】。
这篇文章作者主要讲述在大数据时代,各种平台存储了大量的行为数据和用户信息,为了保证用户的隐私,数据安全作为数据治理的一部分,也被越来越多的人所提及。如何确保数据在传输过程中的机密性、成为了需要开发者需要考虑的难题。最简单的方式就是在传输之前,使用加密算法对数据进行加密。数据加密作为一种有效的保护手段,已经被广泛应用于各种数据传输场景中。
互联网发展到今日,HTTP API作为前端和后端通信的桥梁,变得越来越重要。在一众API架构风格中,GraphQL因自己的优势也越来越受很多人关注。本文将从数据获取方式、通信性能、灵活性以及使用场景上,浅谈下GraphQL。
如果你需要了解更多关于GraphQL的信息,可以移步官方网站来学习和获取更多的知识,GraphQL当前最新的版本为v16,v17还是测试阶段,不过也很快同大家见面。
官网:https://graphql.org/
GraphQL中文网:https://graphql.nodejs.cn/
Github:https://github.com/graphql/graphql-js
GraphQL Editor:https://graphqleditor.com/graphql/

GraphQL 旨在处理此问题。 在发出信息请求时,您可以确定希望获得的信息。 此类结果是通过将信息定义能力移动到客户端来完成的,而在 REST 中,信息在工作人员方面具有特征。 因此,在 REST API 设计中,工作人员表示要返回哪些数据,而在 GraphQL API 中,工作人员声明可访问的信息,并且客户指示应该替换哪些数据。总结优点如下:
顺便也说下缺点,
GraphQL是一种用于API的查询语言和运行时环境,它允许客户端精确地获取需要的数据。GraphQL通过定义一个全局唯一的Schema,描述了后端所有可能的数据结构。客户端通过编写GraphQL查询语句,告诉服务器需要哪些数据,服务器根据查询语句返回精确的数据。这种方式的优点是减少了不必要的HTTP请求,降低了网络带宽消耗;缺点是需要学习和掌握GraphQL查询语句的编写,GraphQL比较年轻,相对于我们使用REST风格的方式,例如HTTP方法(GET、POST、PUT、DELETE等)对实现客户端对资源的增删改查需要更多的理解。
GraphQL通过减少网络传输的数据量来提升性能,因为它只返回客户端需要的数据。此外,GraphQL还支持懒加载和增量更新,这意味着客户端可以在需要时获取更多数据,而不是一次性加载所有数据。这个在下一篇将专注测试通信性能。
REST API 是应用程序通信的架构概念。与之相对的 GraphQL 则是一种规范、一种 API 查询语言和一组工具。GraphQL 使用 HTTP 在单个端点上运行。此外,REST 开发更侧重于创建新的 API。同时,GraphQL 的重点一直是 API 的性能和灵活性。
对比项 | GraphQL API风格 | REST API风格 |
|---|---|---|
定义 | GraphQL 是一种查询语言、架构样式以及一组用于创建和操作 API 的工具。 | REST 是一组规则,用于定义客户端和服务器之间的结构化数据交换 |
适用场景 | 大型、复杂和相互关联的数据来源。 | 资源定义明确的简单数据来源。 |
返回数据格式 | 客户端定义的灵活结构返回数据。 | 服务器定义的固定结构返回数据。 |
渲染容错 | 无效的请求通常会被架构结构拒绝。这会导致自动生成的错误消息。 | 客户端必须检查返回的数据是否有效。 |
例如获取本篇博文后的信息可以如下方式
REST API
[
{
"id": 1,
"title": "开发实践|API新宠GraphQL浅谈",
"content": "本文主要了解下什么是GraphQL,从数据获取方式、通信性能、灵活性以及使用场景上,浅谈下GraphQL,希望能给更多开发者以帮助。"
}
]GraphQL API
{
"data": {
"posts": [{
"id": "1",
"title": "开发实践|API新宠GraphQL浅谈",
"content": "本文主要了解下什么是GraphQL,从数据获取方式、通信性能、灵活性以及使用场景上,浅谈下GraphQL,希望能给更多开发者以帮助。"
}]
}
}REST 在 API 排列设计方面是一种创新成就,它还是让工程师需要更多。 当 Facebook 人员开始搜索从工作人员那里获取信息的替代方法时,他们试图确定当前 API 约定中获取不足或过度获取的问题。 在 REST 或 SOAP 中,请求某些信息恢复与它相关的所有属性;即使是那些客户端不需要的。
GraphQL则更适用于数据复杂、查询需求多变的场景,如社交媒体、电商等。在这些场景中,GraphQL可以帮助开发者更高效地获取和处理数据,提升用户体验。RESTful API适用于资源导向的场景,如CRUD操作、文件上传下载等。它简单易用,易于理解和实现,适用于大多数Web应用。所以如何选择API架构风格,则一目了然。

本文主要了解下什么是GraphQL,从数据获取方式、通信性能、灵活性以及使用场景上,浅谈下GraphQL,希望能给更多开发者以帮助。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。