

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

# HTTP のAWS AppSync JavaScript リゾルバー関数リファレンス
<a name="resolver-reference-http-js"></a>

 AWS AppSync HTTP リゾルバー関数を使用すると、 AWS AppSync から任意の HTTP エンドポイントにリクエストを送信し、HTTP エンドポイントから AWS AppSync にレスポンスを返すことができます。リクエストハンドラーを使用して、呼び出されるオペレーションの特性に関して、 AWS AppSync にヒントを渡すこともできます。このセクションでは、サポートされる HTTP リゾルバーの異なる設定について説明します。

## リクエスト
<a name="request-js"></a>

```
type HTTPRequest = {
  method: 'PUT' | 'POST' | 'GET' | 'DELETE' | 'PATCH';
  params?: {
    query?: { [key: string]: any };
    headers?: { [key: string]: string };
    body?: any;
  };
  resourcePath: string;
};
```

以下のスニペットは、`text/plain` 本文のある HTTP POST リクエストの例です。

```
export function request(ctx) {
  return {
    method: 'POST',
    params: {
      headers: { 'Content-Type': 'text/plain' },
      body: 'this is an example of text body',
    },
    resourcePath: '/',
  };
}
```

## [メソッド]
<a name="method-js"></a>

**注記**  
これは、リクエストハンドラーにのみ適用されます。

 AWS AppSync が HTTP エンドポイントに送信する HTTP メソッドまたは動詞 (GET、POST、PUT、PATCH、DELETE)。

```
"method": "PUT"
```

## ResourcePath
<a name="resourcepath-js"></a>

 

**注記**  
これは、リクエストハンドラーにのみ適用されます。

アクセス対象のリソースパスです。リソースパスは、HTTP データソースのエンドポイントとともに、 AWS AppSync サービスがリクエストを行う URL を形成します。

```
"resourcePath": "/v1/users"
```

リクエストが評価されると、このパスは、HTTP エンドポイントが含まれる HTTP リクエストの一部として送信されます。たとえば、前の例では次のように変換される可能性があります。

```
PUT <endpoint>/v1/users
```

## Params フィールド
<a name="params-field-js"></a>

**注記**  
これは、リクエストハンドラーにのみ適用されます。

検索実行時のアクションを指定するために使用され、一般に、**query** 値を **body** 内に設定します。ただし、レスポンスのフォーマットなど、他のいくつかの機能を設定できます。

** **ヘッダ** **  
ヘッダー情報は、キーと値のペアです。キーと値の両方が文字列である必要があります。  
例:  

```
"headers" : {
    "Content-Type" : "application/json"
}
```
現在サポートされている `Content-Type` ヘッダーは以下のとおりです。  

```
text/*
application/xml
application/json
application/soap+xml
application/x-amz-json-1.0
application/x-amz-json-1.1
application/vnd.api+json
application/x-ndjson
```
以下の HTTP ヘッダーを設定することはできません。  

```
HOST
CONNECTION
USER-AGENT
EXPECTATION
TRANSFER_ENCODING
CONTENT_LENGTH
```

** query**** **  
一般的なオプション (JSON レスポンスのコードフォーマットなど) を指定するキーと値のペア。キーと値の両方が文字列である必要があります。次の例では、`?type=json` としてクエリ文字列を送信する方法を示しています。  

```
"query" : {
    "type" : "json"
}
```

** **body** **  
ボディには、設定の際に選択する HTTP リクエストボディが含まれています。リクエストボディは、コンテンツタイプが charset に指定されている場合を除き、常に UTF-8 でエンコードされた文字列です。  

```
"body":"body string"
```

## 応答
<a name="response-js"></a>

例を参照してください。[こちらへ](https://docs.aws.amazon.com/appsync/latest/devguide/tutorial-http-resolvers-js.html)。