最近项目中用到了Amazon API Gateway,当中遇到了不少的坑。本文主要罗列了在使用amazon api gateway中遇的问题,希望能帮助到遇到相同问题的开发者。
不支持parmeters array
1 | GET /user/1/addresses?addressId=1&addressId=2 |
服务端接收到的只有一个值,解决办法passing-array-query-parameters-with-api-gateway-to-lambda
POST/PUT 返回 406
当使用json body发送put/post请求时,api gateway有一定机率返回406,查了半天也找出什么原国,后来在stackoverflow上找到了答案,需要在Integration Request中添加Accept头,并且设置其值为空字符串。具体什么原因估计只有AWS api gateway的开发者才知道了。
aws-api-gateway-returns-http-406
URL Query String Parameter、header需要显示设定
如果不在Method Request里显示声名URL Query String Parameter的话,请求参数是不会转发到后台的,request header同理。
Grails参数绑定不支持application/x-amz-json-1.0
/application/x-amz-json-1.0
content type.
请求转发到后台时,API gateway会将application/json
转换成application/x-amz-json-1.0
/application/x-amz-json-1.0
,需要修改代码,添加对这两个header的支持,不然会无法绑定参数。