意味
ATOMサービスとして機能するRESTアプリケーションを使用する場合、独自のクラスはクラスCL_REST_RESOURCEから派生します。このクラスは、サービスドキュメントの読み取りを提供するメソッドIF_REST_RESOURCE〜GETを再定義します。次の例は、エントリのフィード用のサービスドキュメントを提供します。
-
サービス伝票情報は、構造IF_APP_TYPES=>SERVICE_Sに入力されます。このABAP構造のメンバーは、仕様に従って設計されていますhttp://www.ietf.org/rfc/rfc5023.txt。
-
このメソッドによって作成されたサービスドキュメントの例には、次のコンポーネントが含まれています。
-
サービスのワークスペース(明細タイプIF_APP_TYPES =>WORKSPACE_SのABAPテーブルtypeIF_APP_TYPES=>WORKSPACE_T)。この設定は、ATOMフィードプロバイダーで利用可能なエンティティのコレクションを記述します。
-
サービスで利用可能なエンティティのコレクションを説明するワークスペース(ABAPテーブルタイプIF_APP_TYPES => COLLECTION_T、行タイプIF_APP_TYPES => COLLECTION_S)に属するコレクション。
-
コレクションのacceptコンポーネントは、コレクションに投稿できる表現のタイプを示します。この例では、サービスは、タイプCarsを参照してコレクションに投稿されるATOMエントリードキュメント(メディアタイプapplication / atom + xml; type = entry)を受け入れます。
-
-
タイプCL_APP_SERVICE_PROVのAPPサービスプロバイダが登録され、メソッドSET_SERVICEを使用してIF_APP_TYPES=>SERVICE_Sに保存されているサービス文書情報を設定します。
-
これはATOMエントリを提供するRESTアプリケーションプロバイダーであるため、サービスドキュメントのシリアル化はWRITE_TOを使用してメンバー変数MO_RESPONSEの新しい応答エンティティに行われます。つまり、HTTP本文はサービスドキュメントのXMLシリアル化コンテンツで設定されます。
上記のメソッド(ヘッダーContent-Type: application / atomsvc + xmlを使用)によって提供されるシリアル化されたサービスドキュメントは、次のようになります。