

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# HTTP リクエストを にカスタマイズする AWS
<a name="customize-http-request"></a>

は、HTTP リクエストの作成、ペイロードの送信、レスポンスの受信のプロセス AWS SDK for SAP ABAP を処理します。HTTP リクエストの動作またはコンテンツをカスタマイズして、独自の IT 要件を満たすことができます。SDK は、HTTP 通信を強化するための中心的な場所`/AWS1/RT_EHN_HTTP_CLIENT`としてエンハンスメントスポットを定義します。エンハンスメントスポットは、 へのリクエストへの HTTP ヘッダーの追加をサポートします AWS。

## エンハンスメントを実装する
<a name="implement-enhancement"></a>

SAP では、エンハンスメントスポットを実装するための以下の手順が用意されています。
+ [クラシック ABAP](https://help.sap.com/doc/saphelp_nw75/7.5.5/en-US/5f/103a4280da9923e10000000a155106/frameset.htm)
+ [BTP ABAP](https://help.sap.com/docs/abap-cloud/abap-development-tools-user-guide/creating-badi-implementations)

## エンハンスメントをフィルタリングする
<a name="filter-enhancement"></a>



エンハンスメントスポットは、同時にアクティブにできる複数の実装をサポートします。エンハンスメントが特定の AWS サービスまたは API アクションへの呼び出しでのみ実行されるようにする必要がある場合は、次の属性に基づいて BAdi の実行をフィルタリングできます。
+ `TLA` - サービスの 3 文字の省略形。大文字で表記します。
+ `OPERATION` - API アクション名。たとえば、S3 バケットからオブジェクトを取得するオペレーションは [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) です。アクション名では大文字と小文字が区別され、ABAP メソッド名と完全に一致しない場合があります。

## エンハンスメントをコーディングする
<a name="code-enhancement"></a>

拡張機能では、次の方法が提供されます。

### MODIFY\$1REQ\$1HEADERS
<a name="modify-req-headers"></a>

```
CHANGING CT_HEADERS TYPE /AWS1/RT_STRINGMAP_TT
```

`CT_HEADERS` 内部テーブルにヘッダーを追加および変更できます。ヘッダーを変更することはお勧めしません。これにより、 AWS サービスが使用するデータが変更されるためです。追加したヘッダーは AWS サービスによって無視されますが、プロキシサーバーやその他のミドルウェアなどの IT インフラストラクチャで処理できます。

エンハンスメントスポットは、認証ヘッダーとテレメトリヘッダーの計算前に呼び出されるため、エンハンスメントによって変更することはできません。

実装例を次に示します。

```
METHOD /aws1/if_rt_badi_http_client~modify_req_headers.
  APPEND VALUE /aws1/rt_stringpair_ts( name = 'x-test-example' value = 'value' ) 
    TO ct_headers.
ENDMETHOD.
```