如何从 AWS Api 网关获取根路径“/”资源?
How to get root path "/" Resource from AWS Api Gateway?
我一直在尝试使用 Nodejs AWS SDK 从 AWS Api 网关检索路径为“/”(根)的资源。我知道天真的解决方案是这样做:
var AWS = require('aws-sdk');
var __ = require('lodash');
var Promise = require('bluebird');
var resources = [];
var apiGateway = Promise.promisifyAll(new AWS.APIGateway({apiVersion: '2015-07-09', region: 'us-west-2'}));
var _finishRetrievingResources = function (resources) {
var orderedResources = __.sortBy(resources, function (res) {
return res.path.split('/').length;
});
var firstResource = orderedResources[0];
};
var _retrieveNextPage = function (resp) {
resources = resources.concat(resp.data.items);
if (resp.hasNextPage()) {
resp.nextPage().on('success', _retrieveNextPage).send();
} else {
_finishRetrievingResources(resources);
}
};
var foo = apiGateway.getResources({restApiId: 'mah_rest_api_id'}).on('success', _retrieveNextPage).send();
但是,有人知道替代方法吗?我宁愿知道我最多只需要打一个电话,而不是打多个电话。
PS:我知道可以进行多项优化(例如检查每个响应的根路径),我真的很想知道是否有一个 SDK 调用可以解决这个问题。
没有一个调用,但如果您的资源少于 500 个,则可能会调用。作为安慰奖,这是最佳实践,如果有超过 500 个资源,则使用 position
来防止意外遗漏。如果资源少于500个,调用一次即可:
我一直在尝试使用 Nodejs AWS SDK 从 AWS Api 网关检索路径为“/”(根)的资源。我知道天真的解决方案是这样做:
var AWS = require('aws-sdk');
var __ = require('lodash');
var Promise = require('bluebird');
var resources = [];
var apiGateway = Promise.promisifyAll(new AWS.APIGateway({apiVersion: '2015-07-09', region: 'us-west-2'}));
var _finishRetrievingResources = function (resources) {
var orderedResources = __.sortBy(resources, function (res) {
return res.path.split('/').length;
});
var firstResource = orderedResources[0];
};
var _retrieveNextPage = function (resp) {
resources = resources.concat(resp.data.items);
if (resp.hasNextPage()) {
resp.nextPage().on('success', _retrieveNextPage).send();
} else {
_finishRetrievingResources(resources);
}
};
var foo = apiGateway.getResources({restApiId: 'mah_rest_api_id'}).on('success', _retrieveNextPage).send();
但是,有人知道替代方法吗?我宁愿知道我最多只需要打一个电话,而不是打多个电话。
PS:我知道可以进行多项优化(例如检查每个响应的根路径),我真的很想知道是否有一个 SDK 调用可以解决这个问题。
没有一个调用,但如果您的资源少于 500 个,则可能会调用。作为安慰奖,这是最佳实践,如果有超过 500 个资源,则使用 position
来防止意外遗漏。如果资源少于500个,调用一次即可: