DOCS

GraphQL を使用する理由

REST ではなく GraphQL を介して統合することを推奨する理由をご覧ください。

Zonos では、統合用に GraphQL と REST という 2 つの主要なタイプの APIs を提供しています。 REST APIs は以前から存在しており、多くの人にとって馴染みのあるものかもしれませんが、柔軟性を高め、より迅速なイノベーションを可能にするために GraphQL に移行しました。どちらもまだサポートされていますが、このガイドでは、GraphQL が統合の未来であるだけでなく、統合一般の未来であり、今日のニーズを満たすより強力なツールである理由を説明します。

GraphQL とは何ですか? 

GraphQL は、APIs と通信するための代替方法であり、複雑なデータ構造とその上にインターフェイスを構築するのに非常に適しています。データを個別のスタンドアロンの部分として扱うのとは異なり、GraphQL はデータ部分がどのように相互に接続および関連しているかを示し、情報の要求と受信を容易にします。

GraphQL は、データベースと直接通信しているかのように API と通信できるクエリ言語と考えてください。 GraphQL を使用すると、データベースにできるだけ近づけることができ、必要なデータとその取得方法を選択できるため、パフォーマンスが大幅に向上します。

GraphQL は、複雑なデータ構造でのスケーリングの問題を解決するために、Facebook によって作成されました。この導入が成功した結果、ますます多くの企業が APIs に GraphQL を使用する利点を認識し始めています。

REST についてはすでにご存知ですか? GraphQL に親しみを感じるでしょう。

GraphQL APIs は、思っているよりも簡単に操作できます。 REST APIs の使用に慣れている場合は、REST の中核となる概念がどのように GraphQL に変換されるかを説明します。

特徴↕REST↕GraphQL↕
エンドポイントさまざまなアクションのために複数のエンドポイントに対してリクエストが行われますすべてのリクエストは単一のエンドポイント (例: /graphql) に対して行われます。
データの取得特定のエンドポイントで GET メソッドを使用してデータを取得するクエリを使用して必要なデータを正確にリクエストし、オーバーフェッチまたはアンダーフェッチを削減します
データの変更/アクションデータを変更または処理するには、POST、PUT、PATCH、DELETE などの HTTP メソッドを使用します。ミューテーションを使用して操作を実行します (例: 当事者の作成、Landed Cost の計算)
応答フォーマット固定応答形式は、必要かどうかに関係なく、すべての定義済みフィールドを返します。柔軟な応答により、含めるフィールドを正確に指定できるため、不必要なデータ転送が削減されます (この柔軟性が複雑だと感じる場合は、ドキュメントにある事前に作成されたクエリの例を使用して RESTful エクスペリエンスを実現してください)
データ接続関連データを取得するには複数のリクエストが必要になることがよくありますネストされたクエリにより、単一のリクエストで関連データを取得できます (例: 当事者の詳細と出荷品目を一緒に)。ユーザーは、単一の GraphQL リクエスト内で複数のミューテーションを管理するワークフローを構築して、複雑さを軽減し、効率を向上させることもできます。

GraphQL の利点

例え話 

定食からしか選べない他のレストランと比べて、自分の好きなように料理を注文できるメニューのあるレストランにいると想像してください。 GraphQL は最初のレストランのようなものです。

  • 必要なものを正確に入手: GraphQL を使用すると、それ以上でもそれ以下でもなく、必要なデータを正確に要求できます。材料のリスト全体ではなく、料理の名前と価格だけが必要な場合を想像してください。 REST APIs では、料理の詳細全体を取得し、必要のない部分を無視する必要があります。
  • カスタム料理の作成: 当社の GraphQL API を簡単に組み合わせて、より多くのカスタムソリューションを作成できます。これは、既存の材料を使用して、必要に応じて独自の料理を作成できるビュッフェスタイルレストランと同様です。対照的に、REST API は、既製の商品がカゴに詰められたパン屋のようなものです。注文できるのはすでに作成されたものだけであり、必要な部分だけを持ち帰ることはできません。
  • 待ち時間の短縮: 1 回のリクエストで必要な情報をすべて取得できるため、コース間で待つのではなく、前菜、メインコース、デザートを一度に持ってくるようにウェイターに依頼するようなものです。ほとんどの REST APIs では、さまざまな情報を取得するために複数のリクエストを送信する必要があります。
  • 注文の変更が簡単: アプリのデータを変更する必要がある場合、GraphQL を使用すると調整が簡単になります。必要なものに合わせてクエリを変更するだけです。 REST を使用すると、キッチン (バックエンド) がメニューの新しい食事 (エンドポイント) を作成するのを待つ必要がある場合があり、これにはさらに時間がかかります。

GraphQL は、特にニーズの変化や増大に応じて、REST APIs よりもデータをフェッチするための柔軟性、効率性、シンプルさを提供します。

Zonos が GraphQL を使用する方法 

過去数年間にわたってプラットフォームを最新化する中で、Zonos は、REST ではなく API に GraphQL を使用して新しい機能を構築することを選択しました。 Facebook が GraphQL を作成するきっかけとなったデータと同様に、私たちのデータは複雑で相互接続されているため、これを行うことにしました。この複雑さにより、スケーラブルな REST APIs を構築することが困難になります。開発者がデータをフェッチして使用する必要がある方法は実装ごとに大幅に異なり、REST は柔軟性に欠けるためです。

GraphQL は、API を実装する開発者が必要なデータとその取得方法を正確に選択できるようにすることで、この問題を見事に解決します。これにより、Zonos があらゆる状況で (待機中に) カスタム作業を行う必要がなく、ワークフローに適合させることができます。

GraphQL の使用とプラットフォームの最新化の組み合わせにより、API のパフォーマンスが向上し、Zonos のシステムへの統合が迅速化され、Zonos が新機能をより迅速に提供できるようになりました。

優れた機能

Zonos は継続的に新機能を開発しており、GraphQL はこれらの更新を最初に受け取る (通常は唯一) ものです。対照的に、当社の REST APIs はサポート終了とみなされ、多くの新機能にアクセスできません。

GraphQL に限定された機能の例:

  • Inclusive pricing
  • ラベル API
  • 新しい Checkout と Hello
  • API 応答のボックスサイズ
  • Dashboard レポート
  • 可能であれば DDP 見積もりをリクエストしますが、そのサービスレベルで DDP がその国で利用できない場合は DDU 見積もりを返す機能
  • 関税、税金、料金の詳細な内訳 (品目レベルの情報、特定の料金) - Dashboard は GraphQL を利用しており、すべての店舗のこのデータを表示しますが、REST API 応答にはこのレベルの詳細が含まれていません。
  • テストモード (近日公開予定)

このページは役に立ちましたか?