

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 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: '/',
  };
}
```

## Method
<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
```

## 參數欄位
<a name="params-field-js"></a>

**注意**  
這僅適用於請求處理常式。

用來指定搜尋執行的動作，最常見的方式是設定**內文**中的**查詢**值。不過，有多項其他功能可設定，例如回應的格式。

** **標頭** **  
標頭資訊，以金鑰值對形式。金鑰與值皆必須為字串。  
例如：  

```
"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"
}
```

** **本文** **  
此本文包含您選擇設定的 HTTP 請求本文。除非內容類型指定字元集，否則請求本文一律是 UTF-8 編碼的字串。  

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

## 回應
<a name="response-js"></a>

請見[此處](https://docs.aws.amazon.com/appsync/latest/devguide/tutorial-http-resolvers-js.html)範例。