このエラーには他にも質問がありますが、これは私のシナリオではありません。APIゲートウェイ:「START_OBJECTトークンからjava.lang.Stringのインスタンスを逆シリアル化できません」
テスト私の単純なGETリクエストは、テストコンソールにerrorMessage
フィールドに次のようにして失敗します。
Can not deserialize instance of java.lang.String out of START_OBJECT token\n at [Source: [email protected]; line: 1, column: 1
私のラムダ関数は一つのパラメータを取る静的メソッドget
持つ単純なJavaクラスですからIDパスパラメータ。例えば
、mysite.com/resource/1
からGET
を行うと、私の静的なクラスのget
方法に1
を渡す必要があります。
リクエストボディをマッピングしていないため、マッピングを設定していません。 API Gatewayのドキュメントは非常に混乱していて、同様のシナリオを扱った例については非常に軽いです。
ラムダ関数のパラメータにパスパラメータをマップするにはどうすればよいですか?
い '$ input.params'表紙パスパラメータすぎラムダ統合の詳細な背景?私はこれを試しても同じ問題を抱えています。 –
はい、あります。 パラメータが正しく設定されていない可能性がありますか?したがって、リソースパスは "/ resource/{foo}"であり、 'foo'というパスパラメータが正しいでしょうか?その場合、上記の貼り付けたテンプレートは、使用すると完全に動作するはずです { "resourceId": "$ input.params( 'foo')" } –
コンテンツタイプが私をここで混乱させます。 GETリクエスト。応答は現時点では実際には文字列であり、javaのハンドラメソッドは単にpublic static String get(String id){...}です。私のデプロイされたバージョンへのGETリクエストは 'get(pathParameter)'を起動するだけですが、この同じエラーメッセージが表示されるようです。さらに、コンテンツタイプをapplication/jsonに設定し、それを提案してマッピングすると、私はまだエラーが発生します。困った。 –