我有一个产品可以收集并显示各种测量值(不会进入)。正如人们所料,显示部分是在其上构建的数据库+网站(使用Symfony)。
但是,我们可能会创建一个API来向第三方公开数据。
现在,我们可以选择在数据库之上构建网站和API,或者只是在顶部构建API,并让网站实现API。
我非常喜欢后者,因为否则我每次模式更改时都必须为API和网站调整两个模型层(可能是几次)。 如果我有后者,我显然只有适应API模型的优势。如果API合同保持不变,则网站不需要进行调整。
然而,显然性能有下降。 使用网站< - >数据库,vs网站< - > API< - >数据库,第一个显然是最快的。
我的问题是:您对此权衡的看法是什么? 我希望性能几乎可以平衡,因为所有的机器将在同一个局域网上+将有缓存。如果是这样的话,那么开发的便利性肯定会让我的生活变得更轻松: - )
期待您的意见和经验!
答案 0 :(得分:3)
如果有过早优化的情况,就是这样!如果没有更多信息,你就不会知道答案,而且我非常怀疑两者之间的性能差异可以忽略不计,与你的域名无关。
最好的方法,IMO,是使用这两种方法在你的几个模型上飙升,看看它能带给你什么。
答案 1 :(得分:3)
没有更好的方法来确保您的API可供其他人使用,而不是自己使用它。我会去网站 - > API - >数据库。写一次,你可以随时调整它并在以后“欺骗”。
答案 2 :(得分:1)
许多现代网站使用JavaScript(AJAX等),然后对API进行服务调用。如果你采用这种方法,你只需在数据库前面设计一个精心设计的,可重复使用的API层。
我发现这里几乎没有额外的努力,我怀疑你会受到明显的性能损失。