API 管理

GraphQL API のライフサイクルを管理する Apigee のネイティブ サポートを発表

#gcp

※この投稿は米国時間 2021 年 9 月 24 日に、Google Cloud blog に投稿されたものの抄訳です。

アプリケーション プログラミング インターフェース(API)は、テクノロジー ソリューションを構築し、接続するための事実上の標準になっています。ソフトウェア同士のインタラクションを促進するので、デベロッパーがデータや機能を大規模に活用することが可能になります。API には、REST、gRPC、GraphQL、AsyncAPI などさまざまなスタイルがあり、それぞれ特徴があります。ユースケースと問題点に応じて、適切な API のスタイルを選択します。REST は広く使われていますが、最近では GraphQL といったフォーマットもデベロッパーの間で人気を集めています。

GraphQL は、API のためのクエリ言語であり、そのクエリを既存のデータで満たすためのランタイムです。その柔軟性と使いやすさから、デベロッパーが GraphQL を採用するケースが増えています。GraphQL はすべてのデータ交換に単一のエンドポイントを提供します。また、データのオーバー フェッチやアンダー フェッチを防ぎ、デベロッパーは一つの API 呼び出しで複数のアプリやサービスのデータをシームレスに集約できます。

本日、Google Cloud の Apigee API 管理プラットフォームが GraphQL API をネイティブにサポートしたことをお知らせします。これにより、デベロッパーの皆様は Apigee でライフサイクルを製品化し、管理することができるようになりました。これらの機能を説明する前に、まずは GraphQL について詳しく見てみましょう。

REST と GraphQL API のスタイルのさまざまな違い

REST と GraphQL API のスタイルは、以下のようにさまざまな面で違いがあります。

  1. エンドポイント - REST は、複数のエンドポイントと、論理的なリソース マネージャーとして使用される URL 分類を提供します。GraphQL では、指定されたオペレーションのすべてのフィールドを取得するエンドポイントが一つあります。

  2. インタラクション - REST では、データのやり取りに HTTP 動詞と JSON / XML を使うのが一般的です。GraphQL は主に HTTP POST 動詞を使用し、リクエストにはスキーマ定義言語と呼ばれるカスタムクエリ言語が使われ、レスポンスには標準的な JSON を返します。

  3. ドキュメント - REST が OpenAPI の仕様やポータルを利用するのに対し、GraphQL は多くの場合、スキーマ生成のドキュメントを利用します。スキーマベースのエンドポイントとのインタラクションのため、デベロッパーは GraphQL playground のようなブラウザベースの開発環境を頻繁に使用します。

  4. 検出 - REST API の検出とインタラクションにおいては、デベロッパーは通常、管理ベンダーが提供するポータルを利用しますが、GraphQL API では、ユーザーがその場で新しいクエリを探せるような組み込みのポータルが提供されることがよくあります。

そのため、1 つのスタイルだけを選ぶのではなく、それぞれのユースケースの解決に適したスタイルを API プログラム内で組み合わせることも検討してみてください。

GraphQL API の管理の必要性

API は、設計スタイルを問わず、組織の最も価値のあるデータや機能へのアクセスを提供します。デベロッパーはこのような方法を使って、新しいパートナーシップやデジタル サービスを活用します。つまり、組織は API が誰によってどのように使用されるかを管理し、理解する必要があるということです。さらに、アクセス管理だけでなく、組織は、デベロッパーに一流の体験を提供し、生産性を高めるような API を設計、デプロイしなければなりません。そのため、API をコードのスニペットとしてではなく、完全なライフサイクル管理が必要なデジタル プロダクトとして捉えることが大事です。

GraphQL API をプロダクトとしてパッケージ化することで、以下のようなスタイルの制限を解決できます。

  • 承認機能(特にスキーマ ブラウジング)が限定されている

  • スロットリングや割り当ての基準がない

  • 消費に関する統一された分析がない

  • バージョン管理がなされていない

ビジネス上の重大な問題を解決するための GraphQL API の導入拡大に伴い、それらの API をプロダクトとして管理することが非常に重要になります。ここに、REST API 管理の実証済みのベスト プラクティスを GraphQL に拡張する大きなチャンスがあります

GraphQL API で Apigee を使用する

Apigee は、市場をリードするライフサイクル全体の API 管理プラットフォームであり、世界中の何千もの組織から信頼を寄せられています。新しいネイティブ サポートにより、Apigee は REST と同様、消費者向けの GraphQL API のライフサイクル全体を製品化し、管理することができるようになりました。

Apigee GraphQL API 1.jpg

デベロッパーは、GraphQL ポリシーを使用して、次のことを行えます。

  • 許可するフラグメントの数に上限を設定することで、ペイロードに制限をかける。

  • GraphQL を API プロダクトに関連付ける。

  • REST と同様に、OAuth2、VerifyAPIKey、割り当てポリシーの機能を活用する。

  • スキーマレベルでリクエストを検証、認証する。

Apigee GraphQL API 2.jpg

スタートガイド

こちらのドキュメントで、詳細なスタートガイドが入手できます。Apigee にまだよく慣れていない場合は、こちらから無料トライアルをお試しください。

-          シニア プロダクト マネージャー David Feuer

-          Apigee プロダクト マネージャー Nandan Sridhar