web/mobile共用同一個api server?


#1

假如我有一個給web的api server
我需要多開一個同樣的api server給mobile連嗎?

聽朋友說:最好web/mobile各開一個server, 原因是需求不一樣,較好開發
我則認為應該要共用同一個serser,以易於維護。

這邊想問:目前業界大多是怎麼實作?
有人可以分享一下相關經驗嗎?謝謝


#2

目前是同一個 server 然後可以用 domain name 來切,如果你用 Rails route 的話有

RAILS_APP::Application.routes.draw do
  constraints subdomain: ['www' , ''] do
    #route here
  end
  constraints subdomain: ['api'] do
  end
end

的切法,就可以輕易的切割來源多個固定數量的來源網站,而我們家 model 數量目前高達 7x 個 … 如果開發人數多當然開兩個,甚至開多站都 ok,但如果想拼速度的話就開一個就好,等時機到了再分裂即可

至於真正的 API 應該都只有一套,而以後 doc 還可以丟出去之類的,你可以多加些參數來分辨是 web / mobile / 別人內嵌使用種類,等等,anyway 考量點應該很多,不是直接的說一或多之類的


#3

瞭解,另一個問題:
把web & mobile api 寫在同一個controller裡面是好的做法嗎?
這樣是不是會比較好維護?
ex:

def index
  @people = Person.all
  respond_to do |format|
    format.html #web
    format.json { render json: @people } #mobile
  end
end

#4

這個就不一定了,其實說不定要切開,我之前說的只有 model / lib 共用而已,但行為不一定會一樣就是,不過這邊應該是要順你們的流程,如果耦合度超高的話就大部分寫在一起


#5

感謝回覆!我待會會整理一篇目前我想到的做法,再請你看看