共计 853 个字符,预计需要花费 3 分钟才能阅读完成。
之前做的需要,根本都是 REST 格调,以 github 提供的 api 为例,比拟二者差别。试用 GraphQL,找寻其独到之处
<h3 align=”center”> <font color=”orange”>
REST
</font></h3>
REST
- 一个 URI 代表一种资源
- 通过 HTTP 动词对资源进行操作
以创立一个仓库为例
GET,
PATCH 和
DELETE 相似
<h3 align=”center”>
<font color=”orange”>GraphQL</font>
</h3>
- GraphQL 的 endpoint 只有一个
- 所有申请都是 POST
能够在 Exploer 右边写查问,左边显示后果。
查问以后登录的用户名:
查问 Go 我的项目以后的 star 数:
GraphQL 的 endpoint 只有一个,即
https://api.github.com/graphql
应用 Postman:
应用 query 和mutation来辨别是查问还是批改
<h3 align=”center”> <font color=”orange”>
二者区别
</font></h3>
- REST 一个 URI 就是一个资源,GraphQL 只有一个 URI
- REST 返回所有的内容,response 体积较大,GraphQL 能够只返回须要的数据,返回值体积小
GraphQL 是一种语言,有本人的语法和类型零碎
会有谬误提醒~
GraphQL 的劣势:
- 取你所须要的数据,不多也不少
n+ 1 问题
- nesting(嵌套查问)
比方想取一个 pr 的 commits、comment、reviews,用 REST 须要申请四次,而后还须要对返回值进行组装;而用 GraphQL 则只须要一次申请,拿到的就是须要的数据
资源孤岛 (REST) vs Graph(GraphQL)
graphql-voyager
- 强类型(每一个 GraphQL 的申请发到服务端之后,服务端都会进行校验,不通过会报错)
Migrating from REST to GraphQL
参考:
为什么 GraphQL 比 REST 好用?
本文由 mdnice 多平台公布
正文完