REST API とは
REST API は、REST アーキテクチャスタイルの設計原則に従う アプリケーション・プログラミング・インタフェース (API) です。REST は Representational State Transfer の略で、Web API の構築方法に関するルールとガイドラインの集まりです。
API とは
API は、アプリケーション・ソフトウェアを構築および統合するための一連の定義、およびプロトコルです。情報プロバイダーと情報ユーザーの間の契約とみなされることもあり、コンシューマー (呼び出し) から要求されるコンテンツとプロデューサー (応答) によって要求されるコンテンツを確立します。たとえば気象情報サービスの API 設計では、ユーザーが郵便番号を指定すると、プロデューサーが最高気温と最低気温という 2 種類の回答を返すようにできます。
言い換えると、コンピュータやシステムと対話して情報を取得したり関数を実行したりするとき、API はシステムが要求内容を把握して実行できるように、目的の動作をシステムに伝達します。
API は、ユーザーまたはクライアントと、取得対象のリソースや Web サービスとの仲介者と考えることができます。組織がセキュリティ、制御、認証を管理 (誰が何にアクセスするかを指定) しながら、リソースと情報を共有する手段でもあります。
API のもう 1 つの利点は、リソースがどのように取得され、どこから取得されるかというキャッシュの詳細を知らなくてもよいということです。
REST
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 を選ぶ理由
Red Hat® Integration は API 中心のソリューションで、アプリケーションの接続性とデータ変換、サービス構成とオーケストレーション、リアルタイムのメッセージストリーミング、変更データの取得、API 管理を一元化して提供し、ハイブリッド・インフラストラクチャ上でアプリケーションとデータをつなげます。クラウドネイティブのプラットフォームおよびツールチェーンと結合して、先進的なアプリケーション開発をサポートします。
Red Hat 3scale API Management は Red Hat Integration のコンポーネントで、パフォーマンス、制御性、セキュリティ、拡張を重視して構築されたインフラストラクチャ・プラットフォーム上で、API の共有、配布、制御、収益化を支援します。3scale のコンポーネントは、オンプレミス、クラウド内、またはその両方に配置できます。