2017-06-12 261 views
3

看起來 403的響應被接受爲對在API網關設置(this post)上不存在的資源或端點進行的任何調用的標準和正確處理。AWS API網關 - 未找到資源上的錯誤403

示例:對我的網關上不存在的端點的呼叫是;

  • GET - https://開頭{{MyGatewayDomain}}/API/V1 /等等

這將返回一個403 forbidden。這可能相當混亂和誤導。

我想知道是否有人設法配置他們的API網關,以便任何對不存在的端點/資源的調用返回我認爲是404的正確響應?

在此先感謝。

編輯

bejos-aws的建議下,我能夠覆蓋然而403 Missing Authentication Token的默認行爲,這不會解決我的問題,因爲那麼所有的有效403錯誤會返回一個404響應這是不正確的。

此外,我的問題是關於403 forbidden,它不存在於AWS Gateway Response列表中的默認響應中(即使它的確如此,也不會有幫助)。

似乎這是不可能的?

回答

0

這目前不是API網關的一項功能。但是,有一個解決方法。使用網關響應,您可以用404覆蓋403 Missing Authentication Token響應,並提供您想要的任何消息作爲響應。

所以,如果您的API被部署到一個名爲V1

https://{MyGatewayDomain}/api/v1/somepath

和呼叫者階段提供了錯誤:

注意,當API 階段有效這僅適用舞臺

https://{MyGatewayDomain}/api/invalidStage/somepath

然後API仍然會迴應403 Forbidden

+0

那麼這是不是意味着對具有無效標記的有效端點的任何調用都會得到404?哪一個會打破這個迴應? 此外,我注意到我的錯誤是'403禁止',並且沒有'網關響應'。 – Hexie

+0

是的。不幸的是,對於你想要做的事情沒有一個簡潔的解決方案。 –

+0

我希望來自AWS的人對此有一些瞭解,因此,我更新了我的查詢。謝謝你嘗試。 – Hexie