我正在使用AWS API Gateway创建API,目前正在使用查询字符串将值传递给我的lambda函数。这导致URL的结构如下:
users/user?user_id='test123'
我想要做的是使用路径来传递值而不是查询字符串。例如:
users/user/id/test123
我查看了映射模板,并了解它们用于将数据转换为函数的格式,但我不确定如何使用路径然后将其映射到lambda函数。
有什么想法吗?
答案 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函数只接受正文中的参数,而不接受查询字符串。