2013-11-25 91 views
3

哪一個用戶API該控制器結構意義Laravel API控制器結構?

獨立控制器的用戶界面和API爲每個API版本

/app/controllers/UsersController.php 
/app/controllers/api/v1/ApiUsersController.php 

的用戶界面和API單獨的控制器和處理版本代碼

/app/controllers/UsersController.php 
/app/controllers/api/ApiUsersController.php 

使用單個控制器,檢測路由器中的/ api /呼叫。根據url返回html/json。

/app/controllers/UsersController.php 
+0

第一個選項清晰直接。如果你向公衆開放你的API,最後一個最終會令人困惑。 –

回答

4

當然,第一種選擇是最好的三種,原因是可擴展性維護

如果您只使用一個控制器,就像第三種方法中提出的那樣,您將很快結束一個亂七八糟的類,其中有成千上萬行。這不但不能很好地擴展,而且對於你和你的隊友來說也很難。

第二選擇比第三選擇好,但仍不是最好的。從一開始就支持API版本管理是一個更好的做法,它會使您的路由,文件和命名空間更加有條理。

順便說一句,代替命名ApiUserController,只要正確命名空間,也可以使用UserController。所以,你可以一起存在\UserControllerApi\V1\UserController

+0

曼努埃爾,請你解釋爲什麼要使用不同的控制器,如果所有的差異將是輸出JSON或HTML。至於我只有不同的返回語句具有相同的控制器是DRY違規。我一定不會考慮一些事情。你的意思是說,Web/API相應的方法早晚會變得更加沉重,然後就我所知呢? – Gruz

1

個人意見。我更喜歡第一種選擇。所有的1應用程序,並通過命名空間版本。