選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

使用 API Gateway 主控台設定 REST API 的閘道回應

焦點模式
使用 API Gateway 主控台設定 REST API 的閘道回應 - Amazon API Gateway

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

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

下列範例顯示如何使用 API Gateway 主控台設定 REST API 的閘道回應

使用 API Gateway 主控台自訂閘道回應
  1. 在以下網址登入 API Gateway 主控台:https://console.aws.amazon.com/apigateway

  2. 選擇 REST API。

  3. 在主導覽窗格中,選擇閘道資源

  4. 選擇回應類型,然後選擇編輯。在此逐步說明中,我們使用遺漏身分驗證權杖作為範例。

  5. 您可以變更 API Gateway 所產生的狀態碼,以傳回符合您的 API 需求的不同狀態碼。在此範例中,自訂會將狀態碼從預設值 (403) 變更為 404,因為當用戶端呼叫可視為找不到的不支援或無效資源時會出現此錯誤訊息。

  6. 若要傳回自訂標頭,請在回應標頭下,選擇新增標頭。為了方便說明,我們新增下列自訂標頭:

    Access-Control-Allow-Origin:'a.b.c' x-request-id:method.request.header.x-amzn-RequestId x-request-path:method.request.path.petId x-request-query:method.request.querystring.q

    在上述標頭對應中,靜態網域名稱 ('a.b.c') 會對應到 Allow-Control-Allow-Origin 標頭以允許 API 的 CORS 存取;x-amzn-RequestId 的輸入請求標頭會對應到回應中的 request-id;傳入請求的 petId 路徑變數會對應到回應中的 request-path 標頭;而原始請求的 q 查詢參數會對應到回應的 request-query 標頭。

  7. 回應範本下,將內容類型保持為 application/json,然後在範本內文編輯器中輸入下列內文對應範本:

    { "message":"$context.error.messageString", "type": "$context.error.responseType", "statusCode": "'404'", "stage": "$context.stage", "resourcePath": "$context.resourcePath", "stageVariables.a": "$stageVariables.a" }

    此範例示範如何將 $context$stageVariables 屬性對應到閘道回應內文的屬性。

  8. 選擇 Save changes (儲存變更)。

  9. 將 API 部署到新的或現有的階段。

透過呼叫下列 CURL 命令進行閘道回應測試,並假設映射 API 方法的調用 URL 為 https://o81lxisefl.execute-api.us-east-1.amazonaws.com/custErr/pets/{petId}

curl -v -H 'x-amzn-RequestId:123344566' https://o81lxisefl.execute-api.us-east-1.amazonaws.com/custErr/pets/5/type?q=1

由於額外查詢字串參數 q=1 與 API 不相容,因此會從指定的閘道回應傳回錯誤。您應該取得類似如下的閘道回應:

> GET /custErr/pets/5?q=1 HTTP/1.1 Host: o81lxisefl.execute-api.us-east-1.amazonaws.com User-Agent: curl/7.51.0 Accept: */* HTTP/1.1 404 Not Found Content-Type: application/json Content-Length: 334 Connection: keep-alive Date: Tue, 02 May 2017 03:15:47 GMT x-amzn-RequestId: 123344566 Access-Control-Allow-Origin: a.b.c x-amzn-ErrorType: MissingAuthenticationTokenException header-1: static x-request-query: 1 x-request-path: 5 X-Cache: Error from cloudfront Via: 1.1 441811a054e8d055b893175754efd0c3.cloudfront.net (CloudFront) X-Amz-Cf-Id: nNDR-fX4csbRoAgtQJ16u0rTDz9FZWT-Mk93KgoxnfzDlTUh3flmzA== { "message":"Missing Authentication Token", "type": MISSING_AUTHENTICATION_TOKEN, "statusCode": '404', "stage": custErr, "resourcePath": /pets/{petId}, "stageVariables.a": a }

上述範例假設 API 後端是寵物店,而且 API 已定義階段變數 a

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。