還有其他問題涉及此錯誤,但它們正在尋找訪問查詢參數,這不是我的方案。API網關:「不能反序列化java.lang.String的實例超出START_OBJECT標記」
測試我簡單的GET請求失敗,並在errorMessage
現場測試控制檯以下:
Can not deserialize instance of java.lang.String out of START_OBJECT token\n at [Source: [email protected]; line: 1, column: 1
我的lambda函數是一個簡單的Java類的靜態方法get
,它有一個參數:從一個id一個路徑參數。
例如,做一個GET
到mysite.com/resource/1
應該通過1
我的靜態類的get
方法。
我還沒有爲此設置映射,因爲我沒有映射請求正文。 API網關文檔非常混亂,並且其示例涵蓋了類似的場景。
如何將路徑參數映射到我的lambda函數的參數?
是否'$ input.params'罩通路參數太多的背景?我試過這個,仍然遇到同樣的問題。 –
是的。 有可能參數設置不正確?所以資源路徑是「/ resource/{foo}」,然後有一個名爲'foo'的路徑參數是正確的?在這種情況下,我粘貼上面的模板應該完美地工作,如果你使用 { 「resourceId」:「$ input.params('foo')」 } –
內容類型使我困惑在這裏,因爲你說它是一個GET請求。響應實際上只是一個字符串,而java中的處理程序方法只是'public static String get(String id){...}'。對我部署的版本的GET請求應該只是調用'get(pathParameter)',但我似乎得到了同樣的錯誤信息。此外,根據您的建議將內容類型設置爲application/json並將其映射爲這樣,我仍然會得到該錯誤。莫名其妙。 –