2016-06-14 33 views
2

我有一個涉及移動和Web客戶端的項目。移動客戶端主要獲取內容併發布用戶更新,而Web客戶端主要用於創建內容。因此,Web客戶端和API共享許多相同的模型和驗證。分離Rails API和Rails應用程序有意義嗎?

我試圖決定在這種情況下,最好的辦法:調用API

  1. JSON-僅Rails的API +獨立的Rails Web客戶端。
  2. Single Rails應用程序與API和客戶端分離(以某種方式)。

對於我來說,就選項N°1而言,我認爲問題是分離的,因爲我可以在API上工作而其他人在使用Web客戶端。 con似乎在驗證方面有很多重複的代碼。

N°2在減少代碼重複方面可能更有意義,但如果不止一個人在相同的代碼庫上工作並設置解決代碼衝突的過程並不是我想要的在這一點上,因爲我們是一個早期階段的創業公司,並且想快速脫身。

有什麼我失蹤?

+1

你好Alex!我認爲你的帖子可能更適合[Programmers.SE](http://programmers.stackexchange.com/) - 它處理像這樣的更概念性的問題,而不是[so]上的更具體的問題/回答帖子, 。 – Lix

+0

你會考慮類似react-s的地方嗎?在哪裏你可以擁有兩全其美? Web應用程序的前端可以用Javascript編寫,它將使用API​​來構建視圖。它很快。移動應用將使用API​​發佈請求。可能是這個過於簡單的答案? – sethi

回答

2

最好的做法是使用一個Rails應用程序的API和Web界面

要分開的部分,像它的描述有http://collectiveidea.com/blog/archives/2013/06/13/building-awesome-rails-apis-part-1/

+0

您是否可以指出將API和Web應用程序都放在同一個應用程序中的任何潛在問題?在性能和可維護性方面 –

+0

@AlexN。可能沒有問題。如果您的應用程序將處於高負載狀態,則可以輕鬆地爲您的應用程序添加更多服務器實例,並添加負載平衡器以將高負載分散到它們上。 – itsnikolay

0

做在一個剛剛創建API命名空間。

該con似乎在驗證方面有很多重複的代碼。

不,您不會在模型中驗證發生重複,這是由您的API < => web控制器共享的。當然,對於實際的授權/會話處理(如果有),您將擁有單獨的實現,但這些實現不可能重複,但對於您的兩個訪問層有點不同。

相關問題