APIGateway の MappingTemplate
※CURLでテストすると勝手に「Content-Type: application/x-www-form-urlencoded」がつけられるのでちゃんと自分でヘッダーを指定しましょう。
MappingTemplateが正常に動作するようになったらこんなエラーが返ってくるようになった。
{"message": "Could not parse request body into json: Unexpected character (\',\' (code 44)): expected a valid value (number, String, array, object, \'true\', \'false\' or \'null\')\n at [Source: [B@6812cadd; line: 4, column: 16]"}
指定したMappingTemplateはこんな感じ。
#set($inputRoot = $input.path('$')) { "type": "$inputRoot.type", "address": "$inputRoot.address", "location": $inputRoot.location, "title": "$inputRoot.title", "description": "$inputRoot.description" }
「$inputRoot.location」がnullの時とかにJSONとしてフォーマットがおかしくなるからこんなエラーが返ってくる。
一旦こんな形式にしてみたけども
#set($inputRoot = $input.path('$')) { "type": "$inputRoot.type", "address": "$inputRoot.address", "location": { "lat": $inputRoot.location.lat, "lon": $inputRoot.location.lon }, "title": "$inputRoot.title", "description": "$inputRoot.description" }
これでも「$inputRoot.location.lat」がnullの時にNG。
でもここは数値にしたいから""でも囲うこともできない。
そうするとここでわざわざ#ifとかでnullの時は設定しないー的なことをする必要があるってこと?
だったらもうソース側でやればよくね?
いまいちよくわからん。