2

目標:獲取調用AWS-API網關上的資源(路由)的方法。請求正文覆蓋HTTP方法?

我的進度:我有一個端點,它具有GET,PATCH,POST方法,在集成請求步驟中映射到模板。對於PATCH模板看起來是這樣的:

"editJobsTemplate": { 
    "application/json": { 
    "method": "$context.httpMethod", 
    "job": "$input.json('$.job')" 
    } 
} 

使用this document創建。

問題:當PATCH身體是空的,我得到了類似效應初探:

{ 
    "eventType": { 
    "method": "PATCH", 
    "job": "" 
    } 
} 

但是當有與「工作」,在身體發出的一個關鍵目標......

{ 
    "job":"some text value" 
} 

則響應的樣子:

{ 
    "eventType": { 
    "job": "some text value" 
    } 
} 

編輯1

This是來自API網關資源面板的模板屏幕截圖。

和我上郵差測試了得到this result

編輯2 This是顯示Content-Type頭被設置爲application/JSON,因爲每從b.b3rn4rd的響應,並示出了this我之後得到的迴應。

+0

實際上是第一個代碼粘貼的模板還是那個招搖的節選?您是否使用測試功能在控制檯中對此進行了測試? –

+0

我爲我的部署使用了無服務器,因此我添加了屏幕截圖來解決您的評論,第一個粘貼是模板。我還添加了關於郵差測試的截圖。 –

回答

1

當您調用端點時,請確保指定了適當的內容類型標題。在你的情況下,它可能是Content-Type: application/json,否則,請求映射將被跳過,並且請求將按照原樣傳遞給(lambda?)。

而且,我已經可以發現,另一個潛在的問題與"job": "$input.json('$.job')"

應該是:

"job" : $util.escapeJavaScript($input.json('$.job')) 沒有引號!

+0

我已添加標題,我在我的編輯中添加了屏幕截圖。我現在得到一個不好的字符串作爲迴應。我只是運行一個測試來從請求中獲取方法,所以沒有使用escapeJavaScript實用程序,儘管如此,感謝提醒。 –

+0

沒有仔細看到引號,這工作。 –

+0

我沒有懷疑過,當開始使用網關時有類似的問題:) –