SAP資格過去問ならSAPnavi

NoteやStripe決済で安全にSAP過去問を購入することができます。
領収書発行可能 / 即時入手可能

SAP過去問 (SAP Exam)

The GET Method

意味

メソッドIF_REST_RESOURCE〜GETは、クライアント指定のキーによって識別されるタイプCarの単一のエンティティを取得するために使用されます。

例:

URI http:// myhost:4711 / sap / bc / rest_cars / Car / 2は、HTTP GETコマンドを使用してメソッドIF_REST_RESOURCE〜GETを呼び出すことになります。リソースURIテンプレート’/Car / {ID:[1-9] [0-9] *}’は、クラスCL_REST_SAMPLE_CARをこの要求のハンドラークラスとして照合および識別します(セクションABAPプロセッサクラスのアタッチを参照)。値2は、IDという名前の呼び出しパラメーターに入力されます。

返されるデータは次のようになります。

            <?xml version="1.0" encoding="utf-8"?><asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0"><asx:values><CAR><ID>2</ID><MODEL_NAME>Zafira</MODEL_NAME><MANU_ID>3</MANU_ID><PRICE>20599.98</PRICE><CURRENCY>EUR</CURRENCY><MODEL_YEAR>2012</MODEL_YEAR><UPDATE_TIMESTAMP>20121005140643.422526</UPDATE_TIMESTAMP> </CAR></asx:values></asx:abap>         

Etagヘッダーが返されます:ETag:W / “datetime’2012-10-05T14%3A06%3A43.4225260′”これは、 CarエンティティリソースのGETメソッドの実装です。

            method if_rest_resource~get....  lv_id = mo_request->get_uri_attribute( iv_name = 'ID' ).  select single * from r_car    into ls_db_car    where id = lv_id.  if sy-subrc <> 0.    mo_response->set_status( cl_rest_status_code=>gc_client_error_not_found ).    return.  endif.  lv_updated = ls_db_car-update_timestamp.  call transformation id    source car = ls_db_car    result xml lv_xstr.  ls_etag-weak = abap_true.  ls_etag-tag = get_etag( lv_updated ).  if ls_etag-tag is initial.    mo_response->set_status( cl_rest_status_code=>gc_server_error_internal ).    return.  endif.  mo_response->set_etag( ls_etag ).  mo_response->set_status( cl_rest_status_code=>gc_success_ok ).  lo_entity = mo_response->create_entity( ).  lo_entity->set_content_type( iv_media_type = if_rest_media_type=>gc_appl_xml ).  lo_entity->set_binary_data( lv_xstr ).endmethod.         

  • 呼び出し処理中に、RESTライブラリは最初のHTTPクライアント要求をラップしてIDという名前のURI属性を含めます。このパラメータは、ラップされたHTTPリクエストオブジェクトからメソッドGET_URI_ATTRIBUTE)を介して読み取られます。

  • 読み込まれたIDは、データを選択するために使用され、(ABAP ID変換を使用して)単純なXML形式に変換され、ETagヘッダーが応答オブジェクトに設定されます。

  • 応答オブジェクトMO_RESPONSEは、GETメソッドが呼び出される前にライブラリによってすでに作成されているため、現在のメソッドで作成する必要はありません。

タイトルとURLをコピーしました