AWS API网关路径而不是查询字符串

时间:2016-02-28 20:12:30

标签: amazon-web-services aws-lambda aws-api-gateway

我正在使用AWS API Gateway创建API,目前正在使用查询字符串将值传递给我的lambda函数。这导致URL的结构如下:

users/user?user_id='test123'

我想要做的是使用路径来传递值而不是查询字符串。例如:

users/user/id/test123

我查看了映射模板,并了解它们用于将数据转换为函数的格式,但我不确定如何使用路径然后将其映射到lambda函数。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您可以使用如下所示的可变组件路径定义资源:

DECLARE @puntocliente BIGINT
DECLARE @Cuentas BIGINT
SET @puntocliente = 1
SET @Cuentas = 0

WHILE @puntocliente <= (SELECT DISTINCT(ClienteId) FROM [dbo].[CuentasBancarias] WHERE ClienteId = @puntocliente)
BEGIN
    SET @puntocliente = @puntocliente + 1

    WHILE @puntocliente <= @puntocliente
    BEGIN
        SELECT DISTINCT(ClienteId) FROM [dbo].[CuentasBancarias] WHERE ClienteId = @puntocliente

    END

    SELECT @puntocliente

    SELECT * 
    FROM [dbo].[Clientes] a
    INNER JOIN [dbo].[CuentasBancarias] b ON a.ClienteId = b.ClienteId
    WHERE a.ClienteId = @puntocliente
END

然后,您使用映射模板将userid值传递给请求正文中的Lambda函数:

/users/user/id/{userid}

请注意,Lambda函数只接受正文中的参数,而不接受查询字符串。