かなりはまってしまった。
問題
モダンなJSのhttpリクエストでおなじみのaxios
やsuperagent
は、
データ送信の際にパラメーターを「Payload」というものに入れて送信している。
そっちの方が効率が良いのだそう。
これを利用して、axiosから AWS の API Gateway に送信しようとして、はまった。
API Gatewayでは、body
にJsonを入れる形式、つまり
curl -H 'Content-Type: application/x-www-form-urlencoded' \
--data '{"name": "kazuya", "email": "kazuya@kazuya.com"}`' API_ENDPOINT
などとして送信しないとエラーになってしまうためだ。
解決策
axios でこれを実現するには、単純にこれで良い。
axios.post(API_ENDPOINT, JSON.stringify({
name: 'kazuya',
email: 'kazuya@kazuya.com'
}))
二個目の引数に文字列を入れてあげれば勝手になったのか・・・・
下記のStack Overflowで知った。