目前我们有一个巨大的API,我们的后台,我们的前端,以及我们的公共API使用.
这引起了很多麻烦,因为在构建新端点时,我发现代码中有很多特定于应用程序的逻辑,我不一定要在我的端点中包含这些逻辑.例如,创建用户的代码可能包含发送欢迎电子邮件的代码,但由于后台端点不需要,因此我需要添加没有该逻辑的新端点.
我正在考虑使用大型重构来将我们的代码库分解为许多较小的高度特定的服务API,然后在这些API之上构建一组小型应用程序API.
因此,例如,创建新用户的应用程序端点可能会在重构后执行以下操作:
customerService.createCustomer();
paymentService.chargeCard();
emailService.sendWelcomeEmail();
Run Code Online (Sandbox Code Playgroud)
应用程序和服务API将是完全独立的代码库(可能是每个服务单独的代码库),它们也可以使用不同的语言构建.它们只会通过REST API调用进行交互.它们将位于同一个本地网络上,因此延迟不应该是一个大问题.
这是一个坏主意吗?我以前从未见过/曾经在将两者分开的代码库上工作,所以也许有更好的架构来实现我正在寻找的灵活性和可维护性?
建议,链接或评论都将不胜感激.
我正在尝试在AWS中创建一个lambda函数,它将创建一个新的Stripe标记:
import stripePackage from 'stripe';
const stripe = stripePackage('...');
module.exports.create = (event, context, callback) => {
stripe.tokens.create({
card: {
"number": 4242424242424242,
"exp_month": '02',
"exp_year": '22',
"cvc": '123'
}
}, (err, token) => {
if (err) {
console.log(err);
callback(null, {
statusCode: 400,
body: "error"
});
}
callback(null, {
statusCode: 200,
body: "ok"
});
console.log(token);
});
}
Run Code Online (Sandbox Code Playgroud)
但是,每次都会超时.我有一个出站连接的安全组,如下所示:
Ports Destination
All 0.0.0.0/0
Run Code Online (Sandbox Code Playgroud)
但是,我似乎唯一可以连接的是其他AWS服务.如何将我的Lambda函数打开到AWS外部的连接?