在vuex商店中,我调用API网关API,如下所示:
import apigClientFactory from 'aws-api-gateway-client';
const apigClient = apigClientFactory.newClient({
invokeUrl: 'https://blahblah.us-east-2.amazonaws.com/dev'
})
我想调用API的开发或生产版本,这取决于应用程序是处于开发模式还是生产模式。我怎样才能做到这一点?
我假设这是让一个网络应用程序使用API网关的正确方式。当我进行开发工作时,它应该调用API的开发阶段,该阶段反过来使用开发阶段工具(比如lambda的$latest(。一旦这些工具准备就绪,就可以将它们推到API生产所使用的阶段。
更新:我对此并不自豪,但我可以使用if/else语句来定义基于stage的正确url,比如:
if (process.env.NODE_ENV !== 'production') {
var apigClient = apigClientFactory.newClient({
invokeUrl: 'apiurl/dev'
});
} else {
var apigClient = apigClientFactory.newClient({
invokeUrl: 'apiurl/prod'
});
}
您应该使用env变量并在其中注入正确的dev
或production
URL。通过这种方式,您可以实现安全、快速和轻松的分离。
请看一下我的答案,了解所需的整个配置:https://stackoverflow.com/a/67705541/8816585
export default ({ $config: { myFancyAwsVariableDefinedInNuxtConfig } }) => {
const apigClient = apigClientFactory.newClient({
invokeUrl: myFancyAwsVariableDefinedInNuxtConfig
})
}