gpt4 book ai didi

amazon-web-services - 在 AWS API Gateway JavaScript SDK 中设置路径参数

转载 作者:行者123 更新时间:2023-12-04 04:37:39 26 4
gpt4 key购买 nike

我在通过 JavaScript SDK 调用 API Gateway 端点时尝试设置路径参数,但没有任何运气。看起来我要么配置错误,要么在 SDK 生成中存在错误。

我能够成功调用不采用路径参数的端点,但是当我尝试传入要用作路径参数的参数时,SDK 只是将路径参数替换为空白并且我的调用失败。

例如,假设 client是一个正确初始化的 API Gateway 客户端。我有一个名为 /measurement 的端点与 /measurement/{id} 的 child .我可以直接调用两者。
client.measurementGet({},{}); - 成功调用我的/measurement端点client.measurementIdGet({"id": "1234"}, {}); - 浏览器调用/measurement/而不是 /measurement/1234
查看我的 apigClient.js 的源代码,SDK 生成器似乎没有将路径参数放入它正在寻找的参数列表中。比如我生成的代码measurementIdGet方法如下所示:

    apigClient.measurementIdGet = function (params, body, additionalParams) {
if(additionalParams === undefined) { additionalParams = {}; }

apiGateway.core.utils.assertParametersDefined(params, [], ['body']);

var measurementIdGetRequest = {
verb: 'get'.toUpperCase(),
path: pathComponent + uritemplate('/measurement/{id}').expand(apiGateway.core.utils.parseParametersToObject(params, [])),
headers: apiGateway.core.utils.parseParametersToObject(params, []),
queryParams: apiGateway.core.utils.parseParametersToObject(params, []),
body: body
};

return apiGatewayClient.makeRequest(measurementIdGetRequest, authType, additionalParams, config.apiKey);
};

我挖了 assertParametersDefinedparseParametersToObject看起来这些方法需要一个参数列表来查找。在这两种情况下,SDK 都生成了空列表,而不是把我的路径参数放在那里。

如果我手动更新生成的文件以将两行更改为
apiGateway.core.utils.assertParametersDefined(params, ['id'], ['body']);

apiGateway.core.utils.parseParametersToObject(params, ['id'])
SDK 进行了正确的调用。

我的配置中是否遗漏了某些内容,或者代码生成器中是否存在错误?

最佳答案

如果您像我一样使用云形成。您需要将其添加到 RequestParameters .

对于这样的资源/api/pets/{id}/attributes/{attrid} 以下代码有效

  PetsByIdAttributesByAttridGetMethod:
Type: 'AWS::ApiGateway::Method'
Properties:
RestApiId: !Ref MyApi
ResourceId: !Ref PetsByIdAttributesByAttridResource
HttpMethod: GET
AuthorizationType: AWS_IAM
RequestParameters:
method.request.path.id : true
method.request.path.attrid : true
Integration:
Type: AWS_PROXY
IntegrationHttpMethod: POST
Uri: !Sub arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyLambda.Arn}/invocations

关于amazon-web-services - 在 AWS API Gateway JavaScript SDK 中设置路径参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35963037/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com