哪个更好:{REST API,网站} - > {database}或{website} - > {REST API} - > {数据库}?

时间:2011-07-27 11:59:07

标签: performance api rest architecture

我有一个产品可以收集并显示各种测量值(不会进入)。正如人们所料,显示部分是在其上构建的数据库+网站(使用Symfony)。

但是,我们可能会创建一个API来向第三方公开数据。

现在,我们可以选择在数据库之上构建网站和API,或者只是在顶部构建API,并让网站实现API。

我非常喜欢后者,因为否则我每次模式更改时都必须为API和网站调整两个模型层(可能是几次)。 如果我有后者,我显然只有适应API模型的优势。如果API合同保持不变,则网站不需要进行调整。

然而,显然性能有下降。 使用网站< - >数据库,vs网站< - > API< - >数据库,第一个显然是最快的。

我的问题是:您对此权衡的看法是什么? 我希望性能几乎可以平衡,因为所有的机器将在同一个局域网上+将有缓存。如果是这样的话,那么开发的便利性肯定会让我的生活变得更轻松: - )

期待您的意见和经验!

3 个答案:

答案 0 :(得分:3)

如果有过早优化的情况,就是这样!如果没有更多信息,你就不会知道答案,而且我非常怀疑两者之间的性能差异可以忽略不计,与你的域名无关。

最好的方法,IMO,是使用这两种方法在你的几个模型上飙升,看看它能带给你什么。

答案 1 :(得分:3)

没有更好的方法来确保您的API可供其他人使用,而不是自己使用它。我会去网站 - > API - >数据库。写一次,你可以随时调整它并在以后“欺骗”。

答案 2 :(得分:1)

许多现代网站使用JavaScript(AJAX等),然后对API进行服务调用。如果你采用这种方法,你只需在数据库前面设计一个精心设计的,可重复使用的API层。

我发现这里几乎没有额外的努力,我怀疑你会受到明显的性能损失。