调查了REST API和GraphQL的优缺点

引言

我已经调查了REST API和GraphQL各自的优点和缺点。

REST API 是什么。

这是一个自古以来存在的架构。
使用HTTP方法(如GET、POST、PUT、DELETE等)来定义API的行为。
通过为一个URL指定一个HTTP方法,可以将处理定义为获取(GET)、创建(POST)、更新(PUT)或删除(DELETE)。

GraphQL 是一种查询语言

Facebook社(現在はMeta社)為了解決REST API所面臨的問題而開發的查詢語言。
這是一種針對API而設計的查詢語言,通過定義所需數據的結構,僅返回所需數據。
因此,其特點是可以避免返回過大的數據。

GraphQL 公式示例
https://graphql.org/learn/queries/

优势

REST API – REST接口

    • HTTPメソッドにGET、POST、PUT、DELETEなどを指定し、振る舞いを定義するので、理解しやすく、開発しやすい。

 

    • HTTPのキャッシング使える。これにより、クライアントは同じリソースに対してキャッシュを使用することで、ネットワークトラフィックを削減することができる。

 

    リクエストに対してエンドポイントが分かれているので、複雑なリクエストも管理しやすい。

GraphQL
图灵程序设计语言

    • クライアントが必要なデータのみを取得できる。

 

    • 例えば、クエリによってデータのフィールドやリレーションシップを指定することができるため、余計なデータを取得することを回避できる。

 

    1つのエンドポイントを通じてデータにアクセスするので、複数のリクエストを送る必要がない。

缺点

REST API 可简化应用程序之间的通信,并提供以一种统一的方式访问和操作资源的能力。

    • エンドポイントで定義してるレスポンスは全て取得する。

 

    • それによってオーバーフェッチ(過剰取得)が発生したり、逆にレスポンスに定義の少なすぎてアンダーフェッチ(過小取得)が発生する。

 

    REST APIは思想なのでGETなのに実はinsertしてたり、POSTなのに取得していたり、実装者によってばらつきが生まれやすい。

GraphQL (用中文翻譯:图形查询语言)

    • 比較的新しい技術なので学習コストが生まれる。

 

    • クエリ言語なのでクエリが複雑になる可能性がある。

 

    • そのため、小規模なシステムには向かない。

 

    REST APIのようなWEBのキャッシングが効かないので、その辺を考慮する必要がある。
广告
将在 10 秒后关闭
bannerAds