手順
エンティティの処理は、次の3つの基本的な部分で構成できます。
-
単一のリクエストオブジェクトを逆シリアル化し、リクエストデータにアクセスします
-
リクエストを処理するRESTアプリケーションのハンドラークラスにリクエストをルーティングします
-
シングルレスポンスをマルチパートレスポンスオブジェクトに設定します
マルチパートリクエストに含まれるリクエストのリストへのアクセスは、インターフェイスIF_REST_MP_ENTITYのメソッドGET_ENTITIESによって提供されます。各リクエストへのアクセスを容易にするために、タイプCL_REST_HTTP_REQ_PROVのオブジェクトが、単一のリクエストを入力として作成されます。このオブジェクトにより、RESTアプリケーションは単一のリクエストの設定にアクセスできます。単一のリクエストは逆シリアル化され、リクエストオブジェクトへのアクセスはメソッドGET_REQUESTによって提供されます。
リクエストに対応するRESTアプリケーションが作成されます。IF_REST_HANDLERを実装するルータークラスオブジェクトは、メソッドGET_ROOT_HANDLERによって読み取られるRESTアプリケーションから読み取られます(「 RESTアプリケーション」のセクションを参照)。空の応答オブジェクトが作成され、要求プロバイダークラスからの要求オブジェクトとともにルーターのHANDLEメソッドに渡されます。
リクエストで指定されたリソースURIとHTTPメソッドが有効な場合、リクエストは正しいRESTアプリケーションのハンドラークラスメソッドにルーティングされます。
アプリケーション処理から戻った後、IF_REST_MP_ENTITY〜CREATE_ENTITYメソッドを使用してマルチパート応答に新しいHTTP応答が作成されます。以前に渡された応答オブジェクトは、アプリケーションからの応答で満たされます。タイプCL_REST_HTTP_RESP_PROVのオブジェクトが作成され、WRITE_TOメソッドを介して、新しく作成されたマルチパート応答の単一応答オブジェクトに書き込まれます。
ループ内では、各RESTエンティティは、単一のリクエストによって渡されるかのように、RESTリクエストのように扱われます。単一リクエストのRESTアプリケーションハンドラークラスが再利用されます。最後に、全体的な応答は、マルチパート要求のMO_RESPONSEオブジェクトに設定されます。応答コードは202(「承認済み」)です。