Jump to section

REST API とは

URL をコピー

REST API は、REST アーキテクチャの制約に従って、RESTful Web サービスとの対話を可能にする アプリケーション・プログラミング・インタフェース (API または Web API) です。REST (Representational State Transfer) は、コンピュータ・サイエンティストの Roy Fielding によって作成された API の構築方法を定義する仕様であり、REST 用に設計された REST API (または RESTful API) は軽量で高速であるため、IoT (モノのインターネット)モバイル・アプリケーション開発サーバーレス・コンピューティングなどの先進的なコンテキストに最適です。

サーバーレス・コンピューティングにおける API 活用のヒント

API は、アプリケーション・ソフトウェアを構築および統合するための一連のツール、定義、およびプロトコルです。情報プロバイダーと情報ユーザーの間の契約とみなされることもあり、コンシューマー (呼び出し) から要求されるコンテンツとプロデューサー (応答) によって要求されるコンテンツを確立します。たとえば気象情報サービスの API 設計では、ユーザーが郵便番号を指定すると、プロデューサーが最高気温と最低気温という 2 種類の回答を返すようにできます。  

言い換えると、コンピュータやシステムと対話して情報を取得したり関数を実行したりするとき、要求内容をシステムが把握して実行できるように、API は目的の動作をシステムに伝達します。 

API は、ユーザーまたはクライアントと、取得対象のリソースや Web サービスとの仲介者と考えることができます。組織がリソースと情報を共有しながら、セキュリティ、制御、認証を維持して誰が何にアクセスするかを指定する手段でもあります。 

API のもう 1 つの利点は、リソースがどのように取得され、どこから取得されるかというキャッシュの詳細を知らなくてもよいということです。

REST はアーキテクチャ上の制約の集まりであり、プロトコルや標準のセットではありません。API 開発者はさまざま方法で REST を実装できます。

RESTful API 経由でクライアント要求が作成されると、リソースの状態の表現が要求元またはエンドポイントに送信されます。この表現という情報は HTTP 経由で、JSON (JavaScript Object Notation)、HTML、XLT、Python、PHP、プレーンテキストのいずれかの形式で送信されます。JSON は最も一般的に使用されるファイル形式です。名前とは裏腹に言語に依存せず、人間にもマシンにも読み取り可能だからです。 

その他の留意すべきことは、ヘッダーとパラメーターは、RESTful API HTTP 要求の HTTP メソッドでも重要だということです。ヘッダーとパラメーターには、要求のメタデータ、承認、URI (Uniform Resource Identifier)、キャッシュ、Cookie などに関する重要な識別子情報が含まれています。要求ヘッダーと応答ヘッダーがあり、それぞれに独自の HTTP 接続情報とステータスコードがあります。

API が RESTful であるとは、以下の基準を満たす場合です。

  • クライアント、サーバー、リソースからなるクライアント/サーバーアーキテクチャで、要求は HTTP 経由で管理される
  • ステートレス・クライアントサーバー通信。get 要求の間にクライアント情報は格納されず、各要求は独立しており、分離している
  • クライアントとサーバーのやり取りを効率化する、キャッシュ可能なデータ
  • 標準化された形式で情報を転送するための、コンポーネント間で統一されたインタフェース。以下の要件を満たすこと
    • 要求されるリソースは識別可能で、クライアントに送信される表現とは切り離されている
    • クライアントが受け取る表現には操作に十分な情報が含まれているので、クライアントは表現を通じてリソースを操作できる
    • クライアントに返される自己記述的メッセージには、クライアントが情報をどのように処理すべきかを記述する十分な情報が含まれている
    • ハイパーテキスト/ハイパーメディアが利用可能。つまり、リソースにアクセスした後、クライアントはハイパーリンクを使用して現在利用できるその他すべてのアクションを見つけられる
  • 要求された情報の取得に関係する、各タイプのサーバー (セキュリティ、負荷分散などを実行) を、クライアントからは参照できない階層に整理する階層化システム
  • コードオンデマンド (任意):実行可能コードを要求されたときにサーバーからクライアントに送信して、クライアントの機能を拡張する機能 

REST API にはこのような準拠すべき基準がありますが、SOAP (Simple Object Access Protocol) などの規定的プロトコルよりも使いやすいと考えられています。規定的プロトコルには XML メッセージング、組み込みセキュリティ、トランザクション準拠などの個別の要件があるため、速度が遅く重くなってしまいます。 

それに対して REST は、必要に応じて実装できるガイドラインの集まりです。そのため、REST API は高速で軽量になり、スケーラビリティが向上するので、IoT (モノのインターネット)モバイルアプリ開発に最適です。 

Red Hat OpenShift API Management についてさらに詳しく知る

Red Hat® Integration は API 中心のソリューションで、アプリケーションの接続性とデータ変換、サービス構成とオーケストレーション、リアルタイムのメッセージストリーミング、変更データの取得、API 管理を一元化して提供し、ハイブリッド・インフラストラクチャ上でアプリケーションとデータをつなげます。クラウドネイティブのプラットフォームおよびツールチェーンと結合して、先進的なアプリケーション開発をサポートします。 

Red Hat 3scale API Management は Red Hat Integration のコンポーネントで、パフォーマンス、制御、セキュリティ、拡張を目的に構築されたインフラストラクチャ・プラットフォーム上で、API の共有、配布、制御、収益化を支援します。3scale のコンポーネントは、オンプレミス、クラウド内、またはその両方に配置できます。 

関連資料

記事

API とは

API はアプリケーション・プログラミング・インタフェースの略であり、アプリケーション・ソフトウェアを構築および統合するための一連の定義とプロトコルです。

記事

API ゲートウェイの機能

API ゲートウェイは、クライアントとバックエンドサービスのコレクションの間に位置するアプリケーション・プログラミング・インタフェース (API) 管理ツールです。

記事

API 管理に Red Hat を選ぶ理由

Red Hat の API ソリューションは、再利用性や IT のアジリティに加え、測定、監視、スケーリングを支援する管理インタフェースにフォーカスしており、自在に拡張させることができます。

API の詳細はこちら

製品

アプリケーション・プログラミング・インタフェース (API) の共有、配布、制御、収益化のためのインフラストラクチャ・プラットフォーム。

リソース

e ブック

アジャイル・インテグレーション:エンタープライズ・アーキテクチャのブループリント

アナリストペーパー

Red Hat のSAP向けオープンソースソリューションのビジネス価値