如何在为AWS API Gateway生成的SDK中设置请求路径参数

时间:2016-05-22 19:28:56

标签: android amazon-web-services aws-sdk aws-api-gateway

如何在我创建的API网关SDK中设置请求路径参数?

我有一个像这样的PUT请求:/users/{id}

当我在API网关GUI中测试它时效果很好。我被要求提供ID参数。

但是当我创建SDK时,我得到以下方法(Android / Java):

@Operation(
    path = "/users/{id}",
    method = "PUT"
)
void usersIdPut(UserPut var1);

我无法改变路径。它将在其中调用{id}字面的URL。

我试图将ID放入UserPut模型但没有区别。

我该怎么做?

2 个答案:

答案 0 :(得分:0)

我无法重现该问题,我有一个请求模型,响应模型和方法上的一个路径参数,我从SDK客户端获取此信息:

    @Operation(
        path = "/mappingtest/{id}",
        method = "GET"
    )
    Empty mappingtestIdGet(@Parameter(
    name = "id",
    location = "path"
) String var1, Empty var2);

您可以检查以确保参数在“请求路径”中定义。方法请求部分?此外,您已部署了最新的更改,因为SDK是基于已部署的阶段构建的。

答案 1 :(得分:0)

我遇到了同样的问题,事实证明问题是我使用的是无服务器框架,而且它没有设置“requestParameter”字段来标记路径参数。例如{"method.request.path.id": true}

从文档中 (http://docs.aws.amazon.com/cli/latest/reference/apigateway/put-method.html):

  

requestParameters - > (地图)   一个键值映射,用于定义Amazon API Gateway可以接受的必需或可选方法请求参数。键是方法请求参数名称,与method.request。{location}。{name}的模式匹配,其中location是查询字符串,路径或标题,名称是有效且唯一的参数名称。与密钥相关联的值是api-key-required标志,指示参数是必需的(true)还是可选的(false)。此处定义的方法请求参数名称在Integration中可用,以映射到集成请求参数或模板。

我从github源安装无服务器框架而不是最近为请求参数字段添加support的版本后,能够使其正常工作