关于后端:小试GraphQL

43次阅读

共计 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:

应用 querymutation来辨别是查问还是批改

<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 多平台公布

正文完
 0