我正在爲我的項目使用數據提供程序,該程序不符合任何標準,因此在請求的標題中沒有指定任何內容類型。實際上它是指定的,但是具有不同的鍵然後是內容類型。用於映射模板的默認內容類型
POST請求的有效載荷是xml格式,所以據我所知我們需要使用映射模板將有效載荷包裝在json對象中。當我們將內容類型指定爲Integration Request部分中的設置類型之一時,所有這些工作都非常棒。
現在我的理解是否在請求頭中未指定content-type,那麼它應該默認爲'application/json'並執行與該類型關聯的映射模板。在我們的例子中,它的行爲就像忽略了映射模板,反過來導致返回以下錯誤:
{「Type」:「User」,「message」:「無法將請求正文解析爲json。」}
請注意,請求將發送給AWS Lambda進行處理。
任何想法,我們如何才能得到這個工作?
編輯:我已經確認,默認情況下是'application/json',如果Content-Type未設置在標題內。在這種情況下,我假設我遇到的是一個錯誤。
如果默認的內容類型是application/json,是不是因爲網關*預期* JSON並拒絕請求,因爲那不是有效載荷是什麼? –
是和不是。這與被調用的映射模板沒有關係,它只是指定應該調用哪一個。映射模板至少應該被調用。如果我明確地將Content-Type設置爲application/json,那麼將調用映射模板,並將xml內容很好地修剪成JSON對象,並且都很好。問題是,當缺少內容類型時,不會調用哪個應用程序是application/json。 AWS代表在其論壇上已經確認應該調用默認設置。看起來這可能是AWS中的一個錯誤。 – LemonMooseTom
默認'Content-Type'可以是'*''。 – kixorz