如何使用 API Gateway to lambda 查询参数

How to query parameters with API Gateway to lambda

我用 AWS Lambda+ API 网关创建了一个 REST API。

我的 API 网关的 Integration RequestLAMBDA_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&param1=2

因此,在您的第二个代码段中,您可能希望按如下方式创建 URL:

url = 'https://***.amazonaws.com/myAPI?param1=1&param1=2'

res = requests.get(url=url).json()
print(res)

如果您想用逗号分隔参数,param1 的值将是字符串 ('1,2'),而不是列表。