如何在typescript nodejs项目中包含生成的api网关sdk

如何在typescript nodejs项目中包含生成的api网关sdk,typescript,aws-api-gateway,Typescript,Aws Api Gateway,我已经创建了一个API网关API,我想从我正在用typescript编写的nodejs项目中使用它。为此,我想包括生成的SDK 生成的SDK由不导出任何内容的js文件组成。例如,主文件“apigClient”基本上如下所示: var apigClientFactory = {}; apigClientFactory.newClient = function (config) { ... } 要在javascript项目中使用此功能,必须执行以下操作: <script type="text

我已经创建了一个API网关API,我想从我正在用typescript编写的nodejs项目中使用它。为此,我想包括生成的SDK

生成的SDK由不导出任何内容的js文件组成。例如,主文件“apigClient”基本上如下所示:

var apigClientFactory = {};
apigClientFactory.newClient = function (config) {
...
}
要在javascript项目中使用此功能,必须执行以下操作:

<script type="text/javascript" src="apigClient.js"></script>


如何在用typescript编写的nodejs项目中执行相同的操作?

我遇到了相同的问题

SDK不适用于节点。为了在节点上使用SDK,您必须将代码更改为模块化

我找到了一个库,它允许我通过节点与API网关通信:
aws API网关客户端

NPM: 存储库:

但是,有了这个库,您必须自己实现这些请求。改编自自述:

//需要模块
var apigClientFactory=require('aws-api-gateway-client')。默认值;
//ES6:
//从“aws api网关客户端”导入apigClientFactory;
//将invokeUrl设置为config并创建一个客户端。
//有关授权,请参阅其他信息
//要求如下所述。
//您可以在上找到以下url
//API网关阶段会话中的AWS控制台/网关
config={invokeUrl:'https://xxxxx.execute-api.us-east-1.amazonaws.com}
var apigClient=apigClientFactory.newClient(配置);
//调用API的形式如下所述。
//每个API调用都返回一个承诺,该承诺调用
//成功或失败回调
变量参数={
//这是任何头、路径或查询字符串的位置
//请求参数go。键是参数
//按照API中的定义命名
用户ID:'1234',
};
//模板语法遵循url模板
// https://www.npmjs.com/package/url-template
var pathTemplate='/users/{userID}/profile'
var方法='GET';
var附加参数={
//如果存在任何未建模的查询参数
//或需要随请求一起发送的标头
//你可以在这里添加它们
标题:{
参数0:“”,
参数1:“”
},
查询参数:{
参数0:“”,
参数1:“”
}
};
变量体={
//这是定义请求主体的地方
};
invokeApi(参数、路径模板、方法、附加参数、正文)
.然后(函数(结果){
//这是您将放置成功回调的位置
}).catch(函数(结果){
//这是放置错误回调的位置

});您好,感谢分享您的实现,非常感谢!我可以问一个问题吗?请看这里了解更多详细信息。基本上,我是AWS的新手,已经研究过AWS MobileHub,但我更愿意独立实现这些服务。我目前使用的是
aws api网关客户端
,它工作得很好,但我对将react本机应用程序和react js仪表板连接到api网关的方法有点困惑。另外,如何为整个react native应用程序初始化
aws api网关客户端
?嗨,Michael,我很高兴知道我帮了你。关于MobileHub,我不能回答你的问题,因为我不熟悉它。我希望有人能就您在GitHub上打开的票证向您提出一个有见地的问题。现在,为了为整个应用程序初始化
api网关客户端
,如果您创建一个模块,在其中实例化对象,然后将其导出,您将能够在应用程序中的任何位置将其作为单个实例使用。因为JavaScript模块是单例的,所以应该很简单。请参见此处的一个简单示例: