使用する
RESTライブラリの主な目的は、RESTアプリケーションを作成するABAP開発者が、HTTPプロトコルを使用してこれらのリソースにアクセスしているクライアントにRESTのような方法で既存のアプリケーションデータをリソースとして公開できるようにすることです。
RESTライブラリは、インターネット接続フレームワーク(ICF)の上にあるグルーコードとして機能し、ICF HTTPオブジェクトをカプセル化および拡張し、アプリケーションのリソースハンドラーを呼び出します。
サーバー側のプログラムフローの大まかな理解については、次の図をご覧ください。
サーバーの使用法
プロセス
-
ABAPアプリケーションサーバーへの着信HTTP要求は、インターネット通信フレームワーク(ICF)によって処理されます。
ICFには、すべてのICF関連サービスが登録されているサービス登録が含まれています。各サービスには、URLとハンドラークラスが必須です。特に認証処理は、対応するICFサービスで指定されています。ハンドラクラスは、インタフェースIF_HTTP_EXTENSIONおよび特にメソッドHANDLE_REQUESTを実装する純粋なABAPクラスです。
要求が処理されると、ICF-Processorは次の手順を実行します。
-リクエストURL( “/ sap / bc / rest_cars”など)を使用して、適切なハンドラクラスのサービス登録を検索します
-ハンドラークラスをインスタンス化します
-ハンドラークラスのHANDLE_REQUESTメソッドを呼び出します。IF_HTTP_SERVERオブジェクト参照への参照がそのメソッドに渡されます。HTTP要求オブジェクト、HTTP応答オブジェクト、およびその他のICFオブジェクトには、この参照を介してアクセスできます。純粋な、つまり非RESTのICFサービスのタスクは、この処理の時点で、要求オブジェクトのデータを読み取り、データを処理し、応答オブジェクトを埋めることになります。
-
メソッドHANDLE_REQUESTを介してRESTHTTPハンドラーが呼び出されると。次の手順が実行されます。
-HTTPリクエストオブジェクトとHTTPレスポンスオブジェクトは、RESTアプリケーションでより適切に使用できるRESTリクエストオブジェクトとRESTレスポンスオブジェクトによってラップされます。
-RESTコンテキストが作成され、一般情報(URIパーツ、ICFサービス名など)がコンテキストに格納されて、RESTサーバークラスで使用できるようになります。
-RESTアプリケーションは、アドレス可能なリソースとその識別子のリストを求めて呼び出されます。
-リクエストURLに最適なリソースを見つけるためにRESTルーターが呼び出されます(例:「/ Cars / 47」)
-リソースが見つかると、リソースにアクセスするための適切なメソッドが呼び出されます。これは、GET、POST、PUT、DELETE、HEAD、またはOPTIONSメソッドの場合があります。
-
リソース内で、アプリケーションはGET、POST、PUT、DELETE、HEAD、OPTIONSメソッドを実装できます。メソッドに応じて、以下を実行する必要があります(HTTPメソッドを参照)。
-GET:REST応答にリソースの表現を入力します
-POST:リクエスト本文で配信された表現を使用して新しいリソースを作成します
–PUT:リクエスト本文で配信された表現でリソースを更新します
–DELETE:指定されたリソースを削除しますHEAD:GETコマンドと同様ですが、応答本文にデータを返さないでください。このメソッドを使用すると、リクエスト本文をクライアントに返さずに、メタデータ情報をクライアントに返すことができます。
-オプション:クライアントが、リソースのアクションやリソースの取得を暗示することなく、リソースに関連付けられたオプションや要件、またはサーバーの機能を決定できるようにします。