今天学习一下GraphQL,可以用来查询数据库,根据我们请求的格式返回结果.目前接口请求使用这种方式来拿结果,学习一个新的语言或者方法,我通常采用类比的方式,用自己熟悉的语言去理解他.下面我用安卓中熟悉的方式来解读一下,GraphQL文档.
查询和变更
- 字段类型:标量(基本数据类型,不可以继续向下解析)/枚举/Character/Interface/数组
- 输入对象:变更时传入的类型,相当于我们上传一个表单的类型
- 接口(继承,多态):可以走继承,请求子类的具体值
- 别名:相同类型,为了作比较,需要定义不同的名称.
- 片段(类型的抽取):这样我们可以查询类型相同,值不相同的数据,赋给不同的对象.
- 操作名称:根据操作类型graphql可以知道是哪种操作,就像数据库的增,删,改,查一样.操作名称是为了方便我们通过名称一目了然,知道这个查询是用来干啥的,也可以在出现问题的时候快速定位.
- 变量:跟在操作名称后面,就像我们方法中的变量一样,可以传不同的值,查询不同的结果.
- 指令:类似于if/else 通过一些boolean值来判断是否请求响应的数据.
- 变更(mutation):相当于我们提交给服务器一条数据,用来更新或者添加,之后还可以查询这条数据变更后的结果.
- 内联片段:相当于多态,他们有共同的父类,但是又有自己的属性,通过类型,请求不同的字段.
- 元字段:相当于switch/case,根据不同的值查询不同的结果.
验证:相当于语法检测,可以告诉我们书写是否规范,报错提示具体位置
执行:更好的讲解了graphql的执行过程,异步解析器,执行结束的节点为标量,以及返回的格式类型.
内省:感觉就像是java中的反射,可以看到一个类包含哪些字段.
简单整理一下,希望可以帮助大家更好的理解.