您在考虑学习GraphQL还是不学习GraphQL吗?
容易误解的事情 de
GraphQLが、OracleDBやPosgreQLなどのRDBMSと勘違いやすいが、実は、Webシステムを外部から利用するためのプログラムの呼び出し規約(API)の種類の一つで、敢えて何かと比較したいであれば、RESTAPIと思います。
QLの部分は、勘違い原因ですが、クエリ言語を指すこともできるからです。
学习GraphQL是否值得?
从宏观角度来看:
人们认识到学习的内容应该跟上时代的脚步。同时,人们也认识到与时代相适应的内容更具价值。因此,API管理方法也随着变化,现在出现了与微服务和服务网格兼容的语言和工具等。GraphQL被认为是在这一前期背景下新出现的内容。
微观视角:
由于我在2022年有过与GraphQL相关的经验,我相信作为公司的资产,对于那些将来打算经营的人来说,在GraphQL仍然是一项新技术时,能够展示我们有管理API的经验是一个很大的优势。
像Autodesk等公司的API通常会同时使用REST和GraphQL来管理API的请求和响应。
目前,我已确认Autodesk Fusion 360使用了GraphQL。也有使用GraphQL运行Forge的样例,但它们只是样本而已。
学习有多少价值呢?
我认为通过了解上述背景和Autodesk API的动向等信息,就可以理解学习的价值,但实际上如果不学习的话,会感觉到很亏损。
首先,GraphQL是什么?
参考:GraphQL 是什么?
简述
GraphQL は、API向けのクエリ言語とサーバーサイドランタイムの両方を指します。クライアントがリクエストしたデータだけを提供することを優先します。
GraphQL は、API の速度、柔軟性、開発者にとっての使いやすさを向上させるために設計されました。GraphiQL と呼ばれる統合開発環境 (IDE) にデプロイすることもできます。GraphQL は REST の代わりに、データを複数のデータソースから取得するリクエストを 1 つの API 呼び出しで構成できます。
さらに、GraphQL によって、既存のクエリに影響を与えずに、フィールドの追加または廃止を柔軟に保守できます。開発者は API をどんな方法で構築しても構いません。構築された API は GraphQL の仕様によって、クライアントに予測可能な方法で動作します。
优点-只需一种选择:
GraphQL スキーマは GraphQL アプリケーションに単一のソースを設定します。
組織には API 全体をフェデレーションする方法が提供されます。
GraphQL 呼び出しは 1 回のラウンドトリップで処理されます。
クライアントはリクエストしたものを取得し、余分なものは取得されません。
データ型はしっかり定義されているので、クライアントとサーバー間の食い違いが減少します。
GraphQL はイントロスペクションが可能で、クライアントは、利用できるデータ型のリストを- リクエストできます。これは自動生成文書に最適です。
GraphQL では、既存のクエリを壊さずにアプリケーション API を進化させることができます。
多数のオープンソース GraphQL 拡張機能が利用可能で、REST API にはない機能を提供しています。
GraphQL は特定のアプリケーション・アーキテクチャにとらわれません。
既存の REST API 上に導入して、既存の API 管理ツールと連携できます。
次数
-
- REST API に慣れている開発者の場合、GraphQL を学習する期間が必要になります。
GraphQL ではデータクエリ処理の多くがサーバーサイドに移行されるので、サーバー開発者の- 作業が複雑になります。
実装方法によっては、REST API とは異なる API 管理戦略が必要になります (特に、レート制- 限や価格設定を考慮する場合)。
キャッシュが REST よりも複雑になります。
API 保守担当者には、保守可能な GraphQL スキーマを作成する作業が付加されます。
为了那些想要尝试运行GraphQL的人提供的示例。
从零开始使用GraphQL(从零知识、没有数据库的最小配置下运行服务器)