关于GraphQL的说明视频的解说

在这篇文章中,我将只写我理解(能理解)的内容。

這次看到的影片是

何时应该使用GraphQL而不是REST?

这是一位来自巴林的Hussein Nasser,他主要在视频中分享关于后端开发的信息。

视频的结构

本次的文章主要从与REST的比较出发,解释GraphQL的优点、使用例以及REST更好的情况。
我们将依次对每个方面进行比较和讨论。

与REST的对比

这个表格是对视频介绍的比较表进行的日文翻译。
“×”符号不表示不可使用,而是表示不推荐使用。

使用例GraphQLREST使用方法の予測できない公開API○×特定の使用目的のために作られたAPI×○一つのクライアントに対応×○企業API○×よく定義されたスキーマ○×

你可以按照从上到下的顺序前进。

1. 公开API的使用方法未知

在构建中,REST必须尽可能满足客户端的要求。客户端可能需要多次访问后端来满足需求。实现所有要求的REST的扩展性是复杂而困难的。

2. 为特定的使用目的所设计的API

如果你知道使用的目的受限且知道你将收到什么样的查询,那么REST是首选。你可以获得缓存的好处,并利用REST的简洁性。

3. 对一个客户进行处理

如果只有一个客户端,无论是网页还是移动应用程序,使用REST可以节省时间。

4. 企業應用程式介面

一个很好的GraphQL使用示例是纽约时报。有了GraphQL,可以在一个接口中支持其他组织和其他领域的使用。

5.良好定义的模式

GraphQL可以很好地与严格定义的模式结合使用,但它暴露了数据库模式给客户端,这可能会导致攻击者故意造成服务器负载过大而导致服务器崩溃的风险。

综上所述

如果用途或客户受限,那就使用REST;如果想要根据客户端的各种要求灵活应对,又不浪费资源,那就选择GraphQL。
这是我首次发布,请您给予指导。

填補(2020/4/23)

尽管我自己并不完全理解「よく定義されたスキーマ」的含义,但根据维基百科的解释,”well-defined” 是一个数学术语,意味着“通过定义可以为其唯一解释或分配一个值。”当提到 “well-defined function” 时,指的是对于给定的参数返回唯一值的函数。

参考 https://math.stackexchange.com/questions/606917/well-defined-function-what-does-it-mean

一个良定义的函数指的是它在定义域内的每一个元素都有唯一确定的映射元素。

广告
将在 10 秒后关闭
bannerAds