GraphQL全面深度讲解
最佳答案 问答题库598位专家为你答疑解惑
目录
一、GraphQL 是什么
二、GraphQL 规范
数据模型
字段
参数
三、运行示例
四、优势和劣势
优势
劣势
一、GraphQL 是什么
GraphQL 是一种用于 API 的查询语言,也是一个基于服务端的运行引擎。 GraphQL 提供了一套完整的规范和描述用于查询 API,服务端能够准确地返回给客户端需要的数据且没有任何冗余的数据。GraphQL 本质是 API 查询语言,用于前后端数据的查询;开发者可以自定义数据模型、查询规范和查询参数,并在一个请求中就可以获取所有想要的数据。这不像 RESTful 请求,可能需要请求多次才可以获取需要的数据。所以在 GraphQL 请求中,开发者对于返回的结果是有确定性的。
二、GraphQL 规范
数据模型
数据模型用于定义对象实体的数据结构以及对象之间的关系,比如对象有哪些属性,下图表示一个完整的数据模型,定义了一个查询 Query 和两个返回对象 Header 和 Query,这两个对象分别包含的属性字段和数据类型也分别定义了,这些就会用于实际的 GraphQL 的请求中。
字段
在 GraphQL 的查询中,服务端返回给客户端的请求结果包含了预期的结构,就是准确地返回每个请求的字段结果数据。服务端响应的字段和请求的字段是一致的,这个就是 GraphQL 最显著的一个特性,开发者是有预期的。如下图所示,按照上面定义的例子,请求了两个字段,返回了两个字段的结果。使用的参考工具是:APOLLO
参数
在查询数据的时候,可以传递参数进行查询,比如下图中 person 以 id 参数来查询相关的属性数据,在下方的变量中可以输入实际的 id 进行查询。
三、运行示例
示例一:根据数据模型输出完整的数据结果
四、优势和劣势
了解的 GraphQL 基本的一些概念和用法,简单分析一下使用 GraphQL 作为 API 查询语言的优劣势。
优势
- GraphQL 只用一个数据源就可以查询所有数据,所有的请求都可以访问一个服务端点。
- GraphQL 返回的结果响应准确地根据客户端的请求字段,减少客户端和服务端之间的干扰。
- GraphQL 支持所有数据类型的定义和传输,包括请求中的参数传输。
- GraphQL 现在拥有很多开源的工具平台以及插件和扩展。
劣势
- 一些熟悉 RESTful 请求的开发者,可能需要花一段时间学习 GraphQL。
- 对比 RESTful 接口开发,服务端开发者可能会需要花更多时间开发比较容易维护的数据模型。
99%的人还看了
相似问题
- django ModelSerializer自定义显示字段
- 替换sql,某个字段特定容
- Java之反射获取和赋值字段
- java mybatisplus generator 修改字段类型
- 使用用户代理字段进行浏览器检测(判断页面运行环境)
- js数组操作——对象数组根据某个相同的字段分组
- spring boot加mybatis puls实现,在新增/修改时,对某些字段进行处理,使用的@TableField()
- 【IDEA 使用easyAPI、easyYapi、Apifox helper等插件时,导出接口文档缺少代码字段注释的相关内容、校验规则的解决方法】
- mysql取出组内按照某时间最新一条数据的其他字段
- 基于geotools24.0的创建自动增长主键id字段的方法
猜你感兴趣
版权申明
本文"GraphQL全面深度讲解":http://eshow365.cn/6-18195-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: Java小技能:利用反射获取整个项目的枚举字典
- 下一篇: 【计算机基础】Git系列3:常用操作