2011-07-27 49 views
1

我有一個產品,收集和顯示各種測量(不會進入它)。正如人們所期望的,顯示部分是建立在其上的數據庫+網站(與Symfony一起)。哪個更好:{REST API,網站} - > {數據庫}或{網站} - > {REST API} - > {數據庫}?

但是,我們很可能會創造一個API來暴露數據,以第三方爲好。現在

,我們要麼必須在數據庫之上建立兩個網站和API的選擇,或者只是建立在頂部的API,並有網站實現API。

我非常喜歡後者,因爲否則我將不得不既模型層的API和每一次的網站架構更改(可以是幾十倍)適應。 如果我有後者,我顯然有隻適應API模型的優勢。如果API合同保持不變,則網站不需要適應。

然而,顯然在性能方面存在不足。 與網站< - >數據庫,與網站< - > API < - >數據庫,第一顯然是最快的。

我的問題是:您對這種交易的看法是什麼? 我希望性能可以幾乎平衡,因爲所有的機器將在同一個局域網+將有緩存。如果是這樣的情況下,易於開發的肯定讓我的生活:-)

期待您的意見和體驗更輕鬆!

回答

2

如果有過早的優化案例,就是這樣!沒有更多信息,你就不會知道答案,而且我非常懷疑這兩者之間的性能差異將會微不足道,以至於在你的域名中無關緊要。

最好的方法,國際海事組織,是秒殺的幾個使用這兩種方法你的模型,看看,讓你。

+0

這兩個答案(你的和djna)都是我期望/想的,但在我瀏覽答案之前還有很多負面的聲音。我在一家初創公司工作,因此發展速度對我來說是一個非常關鍵的因素。如果性能差異可以忽略不計,我的選擇肯定是這樣做的:以API的形式圍繞數據庫一層,針對該API編寫的所有其他組件。 – Dieter

1

許多現代網站使用JavaScript(AJAX等),然後對API進行服務調用。如果採取了這種方法,您只需在數據庫前設置一個經過精心設計的可重用API層。

我發現有很少或根本沒有額外的努力在這裏,我很懷疑你會招致noticable性能損失。

1

沒有更好的方法來確保你的API可以被別人使用而不是自己使用它。我會去網站 - > API - >數據庫。寫一次,如果你也有,你可以隨時調整它並「欺騙」。