我正在設計一個試圖遵循REST規範的應用程序。我試圖找出設計它的最佳方式。MVC中的RESTful設計模式?
所以我們可以說我做一個POST調用,所以我在我的控制器中的「後」的方法和模型
// in controller
function post()
{
//call post model here
}
在我的職務要求我需要做以下檢查:
-validate fields
-make sure item name is unique for that user
-make sure there are less than 10 items
-etc (there could be more cases)
現在,在控制器的功能後,我將返回基於無論發生什麼事情一個REST消息和狀態代碼,這是很好的,但我很好奇,想知道這是更好地保持所有這些檢查。
我可以把模型中的所有的檢查,然後再返回某種數組一樣的:
array('text' => 'return response text/array or whatever here', 'code' => '200/400/etc')
然後,只需在控制器返回這一點,或者是它更好地內打破了那些檢查到各個功能模型,然後在控制器中進行所有檢查?
// in controller
function post()
{
//if validation fails -> send response
//if name is not unique -> send response
//etc...
}
從設計的角度來看,如果我想有可能調用其他方法的項目模型「後」的方法,它不會有一個包羅萬象的函數來處理它,但是如果我做把它全部放在一個模型函數中,它不會給我很多可重用性。如果我不得不挑選雙方,那麼我很可能不需要重複使用這些「檢查功能」,但是在模型中而不是控制器中擁有所有響應信息似乎也很奇怪。
任何人都可以請給我一些這方面的投入。
感謝您的回覆,這給了我一些想法。我使用的是codeigniter,所以我只是將所有這些案例都加入到一個自定義的驗證類中,並且幾乎可以解決它。保持乾燥的一切,並保持我的控制器和模型清潔。 – Rob