REST API とは

URL をコピー

REST API は、REST アーキテクチャスタイルの設計原則に従う アプリケーション・プログラミング・インタフェース (API) です。REST は Representational State Transfer の略で、Web API の構築方法に関するルールとガイドラインの集まりです。

REST API を最大限に活用する方法

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

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

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

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

API の詳細はこちら

Red Hat のリソース

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 (モノのインターネット)モバイルアプリ開発に最適です。 

REST と SOAP の違いについて詳細を見る

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

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

詳細はこちら

ハブ

Red Hat 公式ブログ

Red Hat のお客様、パートナー、およびコミュニティのエコシステムに関する最新の情報を入手しましょう。

すべての Red Hat 製品のトライアル

Red Hat の無料トライアルは、Red Hat 製品をハンズオンでお試しいただける無料体験版です。認定の取得に向けた準備をしたり、製品が組織に適しているかどうかを評価したりするのに役立ちます。

関連情報

GraphQL とは?をわかりやすく解説

GraphQL(グラフQL)とは、APIクエリ言語であり、既存データにクエリを実行するランタイムです。クライアントが要求するデータのみを返し、API 効率や柔軟性を向上させます。

API とは?仕組みをわかりやすく解説

API (Application Programming Interfaceの略) は、アプリケーションをつなぐインターフェース。API 連携により、ソフトウェア開発の効率化や数多くの革新が促進されます。

SOAP と REST の違いとは?をわかりやすく解説

RESTとSOAPは、どちらも API の構築方法を定義しますが、SOAP はプロトコルで XML データ形式を使用する一方、REST はより柔軟性が高く、複数形式のデータ交換が可能です。

統合リソース