如何使用 API Gateway to lambda 查询参数
How to query parameters with API Gateway to lambda
我用 AWS Lambda+ API 网关创建了一个 REST API。
我的 API 网关的 Integration Request
是 LAMBDA_PROXY
类型,
我在 Lambda 中这样使用参数。 (myparam
是列表类型)
def lambda_handler(event, context):
# TODO implement
try:
myparam = event['multiValueQueryStringParameters']['param1']
#...
我像这样在 python 中测试了我的 REST API。
url = 'https://***.amazonaws.com/default/myAPI'
param = {'param1':['1','2']}
res = requests.get(url=url,params=param).json()
print(res)
有效。但是当我尝试用这样的另一种方式时,
url = 'https://***.amazonaws.com/default/myAPI?param1=1,2'
res = requests.get(url=url).json()
print(res)
这种方式不行。
如果我想直接将参数插入url,如何查询参数?
这些拖车请求并不等同。为了证明这一点,我们可以打印第一个请求的格式化URL:
url = 'https://***.amazonaws.com/default/myAPI'
param = {'param1':['1','2']}
res = requests.get(url=url,params=param).json()
# Print the request URL
print(res.request.url)
这将打印如下内容:
https://***.amazonaws.com/myAPI?param1=1¶m1=2
因此,在您的第二个代码段中,您可能希望按如下方式创建 URL:
url = 'https://***.amazonaws.com/myAPI?param1=1¶m1=2'
res = requests.get(url=url).json()
print(res)
如果您想用逗号分隔参数,param1
的值将是字符串 ('1,2'
),而不是列表。
我用 AWS Lambda+ API 网关创建了一个 REST API。
我的 API 网关的 Integration Request
是 LAMBDA_PROXY
类型,
我在 Lambda 中这样使用参数。 (myparam
是列表类型)
def lambda_handler(event, context):
# TODO implement
try:
myparam = event['multiValueQueryStringParameters']['param1']
#...
我像这样在 python 中测试了我的 REST API。
url = 'https://***.amazonaws.com/default/myAPI'
param = {'param1':['1','2']}
res = requests.get(url=url,params=param).json()
print(res)
有效。但是当我尝试用这样的另一种方式时,
url = 'https://***.amazonaws.com/default/myAPI?param1=1,2'
res = requests.get(url=url).json()
print(res)
这种方式不行。 如果我想直接将参数插入url,如何查询参数?
这些拖车请求并不等同。为了证明这一点,我们可以打印第一个请求的格式化URL:
url = 'https://***.amazonaws.com/default/myAPI'
param = {'param1':['1','2']}
res = requests.get(url=url,params=param).json()
# Print the request URL
print(res.request.url)
这将打印如下内容:
https://***.amazonaws.com/myAPI?param1=1¶m1=2
因此,在您的第二个代码段中,您可能希望按如下方式创建 URL:
url = 'https://***.amazonaws.com/myAPI?param1=1¶m1=2'
res = requests.get(url=url).json()
print(res)
如果您想用逗号分隔参数,param1
的值将是字符串 ('1,2'
),而不是列表。