SAP資格過去問ならSAPnavi

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

SAP過去問 (SAP Exam)

The PUT Method

意味

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

例:

URI http:// myhost:4711 / sap / bc / rest_cars / Car / 2は、ID=2のCarリソースを識別するURIです。このURIは、HTTPリクエストでのPUTコマンドの使用とともに、メソッドIF_REST_RESOURCE〜PUTの呼び出しをトリガーします。

有効なHTTPボディは次のようになります。

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

さらに、有効なETag値はHTTPヘッダーIf-Matchによって提供される必要があります。このHTTPヘッダーの値(たとえば、W / “datetime’2012-10-05T13%3A25%3A14.3910880′”)は、同じリソースURIで以前のGETを使用して、RESTクライアントによって読み取られます。これにより、以前に読み取ったデータがその間に変更されないことが保証されます。

            method if_rest_resource~put....  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.  get time stamp field lv_updated.      " get timestamp for new ETag value  lo_entity = mo_request->get_entity( ).  lv_xstr = lo_entity->get_binary_data( ).  call transformation id    source xml lv_xstr    result car = ls_db_car_in.  if ls_db_car_in is initial.    mo_response->set_status( cl_rest_status_code=>gc_client_error_bad_request ).    return.  endif.  ls_db_car_in-id = lv_id.  ls_db_car_in-update_timestamp = lv_updated.  modify r_car from ls_db_car_in.  if sy-subrc <> 0.    mo_response->set_status( cl_rest_status_code=>gc_server_error_internal ).    return.  endif.  ls_etag-weak = abap_true.  ls_etag-tag = get_etag( lv_updated ).  if ls_etag-tag is initial.    rollback work.    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_no_content ).endmethod.         

  • リソースのキーを表すURI要素は、RESTライブラリによってIDという名前のパラメーターに割り当てられ(これはGETメソッドの例と同じです)、要求オブジェクトのメソッドGET_URI_ATTRIBUTEによって読み取られます。

  • 読み込まれたIDは、要求されたデータを選択するために使用されます。

  • リクエストオブジェクトMO_REQUESTで提供されたデータは逆シリアル化され(単にABAP ID変換によって)、データベースの更新が行われ、新しいETagヘッダーがレスポンスに設定されます。

  • GETの例のように、メンバーオブジェクトMO_RESPONSEは、PUTメソッドが呼び出される前にライブラリによってすでに作成されています。

  • PUTの場合、HTTP本文に応答データセットはありませんが、HTTP応答コード201(「コンテンツなし」)のみが設定されます。

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