GraphQL入门

一 概述

GraphQL是由Facebook创造的用于描述复杂数据模型的一种查询语言。该查询语言是指一种前后端数据查询方式的规范。

二 RESTful存在的问题

RESTful是一种请求数据资源的一种api规范:

#请求
GET http://localhost/user/100
#响应:
{
id : 100,
name : "小三",
age : 20,
address : "北京市",
}

RESTful请求出现这样的结果是正确的,如果,对于请求我只是想得到id和name属性,其他的属性是非必须的,如果我们仍然是获取全部属性,这时候在实际请求中对带宽资源有所浪费。

同时如果我们要获取数据资源时:

#查询用户信息
GET http://localhost/user/100
#响应:
{
id : 100,
name : "小三",
age : 20,
address : "北京市",

}

#查询用户的身份证信息
GET http://localhost/card/100
#响应:
{
id : 100,
name : "小三",
cardNumber : "999999999999999",
address : "北京市",
}

如结果所示,我们需要执行两次不同的api请求才能够完成,这样对于前端接口的使用会不是很友好,当有多个类似的数据请求时,就要发送多个请求才能够完成。

三 GraphQL

GraphQL很好的解决了RESTful在使用过程中的不足,特点如下:

  1. 按需获取数据,即不会一次返回完整的属性,只返回必须属性。
  2. 一个查询获取多个数据,即一个请求获取多个资源。
  3. API的演变无需划分版本(官网的动画演示)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值