什么是GraphQL
GraphQL是Facebook开发的一套查询语言,和Restful查询规范一样,都是一种对前后端数据交互的一种规范,并不是SQL这种的查询语言。
GraphQL和Restful区别
- Restful:主流的前后端交互规范,并且开发的过程中,简洁明了,可以很方面的理解接口的含义,不会带来额外的开发的复杂度,但是接口的返回的数据是固定的,如果前端只需要部分数据,那么接口返回的还是全部的数据,会带来额外的资源浪费
- GraphQL:主要是解决了Restful规范中问题,接口返回的数据不可控制,GraphQL的理念是让前端控制接口数据的字段的返回,让接口的灵活性增加,并且接口数据的增加和改变,不用带来接口的升级,维护多套接口,但是相对于Restful来讲,较为复杂
GraphQL查询规范
GraphQL定义了一套查询规范,可以让前端来控制需要查询的数据,灵活的控制查询的属性对象,仅仅是一种规范
常用的查询规范:
字段(Fileds)
在GraphQL的查询中,请求结构体中包含了锁预期结果的结构,这个就是字段。响应的数据的结构体保持和请求的结构体一致
-
语法
语法看起来和JSON有些类似,不过是自定义的查询的语言,可以自定义查询的对象或者字段
{ hero { name id } } // response { "data": { "hero": { "name": "xx", "id": 1 } } }
hero
表示定义查询的对象,所以hero中的字段需要定义到hero的对象中