SAP資格過去問ならSAPnavi

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

SAP過去問 (SAP Exam)

The GET Method

意味

クラスCL_REST_SAMPLE_CARSのメソッドIF_REST_RESOURCE〜GETは、タイプCarのすべてのエンティティを取得するために使用されます。

例:

URI http:// myhost:4711 / sap / bc / rest_cars / Carsは、HTTP GETコマンドを使用してメソッドIF_REST_RESOURCE〜GETの呼び出しをトリガーします。リソースURIテンプレート’/Car / {ID:[1-9] [0-9] *}’はクラスCL_REST_SAMPLE_CARSと一致し(セクションABAPプロセッサクラスのアタッチを参照)、クライアント要求にはHTTPコマンドGETが付属しています。

返されるデータ(2つのエンティティを含む)は次のようになります。

            <?xml version="1.0" encoding="utf-8"?><asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0"><asx:values><CAR><item><ID>1</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></item><item><ID>2</ID><MODEL_NAME>Golf</MODEL_NAME><MANU_ID>2</MANU_ID><PRICE>25999.99</PRICE><CURRENCY>EUR</CURRENCY><MODEL_YEAR>2011</MODEL_YEAR><UPDATE_TIMESTAMP>20121005140644.422526</UPDATE_TIMESTAMP></item></CAR></asx:values></asx:abap>         

さらに、Etagヘッダーが返されますが、ETag値は、返されたエンティティのすべての返されたリソースのETagです(コレクションのETagは、主にクライアント側またはネットワーク中間体でのリソースキャッシングとHTTPIf-とともに使用されます。なし-ヘッダーと一致します)。

これは、GETメソッドの実装です。

            method if_rest_resource~get....* -1- get data  select * from r_car into table lt_db_car.  lv_count = lines( lt_db_car ).  if lv_count = 0.    mo_response->set_status( cl_rest_status_code=>gc_client_error_not_found ).    return.  endif.  call transformation id    source car = lt_db_car    result xml lv_xstr.* -2- calculate ETag for all returned entities  select max( update_timestamp ) from r_car into lv_updated.  ls_etag-weak = abap_true.  ls_etag-tag = get_etag( iv_updated = lv_updated iv_count = lv_count ).  if ls_etag-tag is initial.    mo_response->set_status( cl_rest_status_code=>gc_server_error_internal ).    return.  endif.  lv_etag = cl_rest_http_utils=>format_tag( is_tag = ls_etag ).  mo_response->set_header_field( iv_name = if_http_header_fields=>etag iv_value = lv_etag ).* -3- set return info  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 ).  mo_response->set_status( cl_rest_status_code=>gc_success_ok ).endmethod.         

  • データの選択は、それぞれのデータベーステーブルに格納されているすべてのCarエンティティを返すだけです。

  • ETagの計算では、選択したリソースの数とそれらの最後のタイムスタンプを計算に使用します。すでに述べたように、リソースのコレクション用のETagは、キャッシュの検証用です(削除されたリソースはエントリの数でカバーされ、作成されたリソースは、一連の変更後もエントリの数が同じままであっても、新しい最大タイムスタンプを提供します)。メソッドGET_ETAGは、最大タイムスタンプとエントリ数に基づいて、返されたリソースの一意の不透明な識別子を作成します。

  • ABAP ID変換は、結果のHTTP本文を作成するために使用されます。

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