2015-03-31 71 views
1

我剛剛分配的應用程序爲UI層使用了ASP.NET MVC框架。然後讓我思考Ruby on Rails,以及它的MVC架構。使用rails創建RESTful API是否遵循MVC體系結構?

當我幫助使用rails構建RESTful API時,我沒有真正使用View ...僅僅是RESTful端點和模型的控制器。

這是否意味着構建在Rails上的RESTful端點並不遵循MVC體系結構,即使Rails應該這樣做?

或者Rails遵循MVC架構的事實意味着即使沒有真正的視圖,構建在Rails上的RESTful端點也遵循MVC框架?

我想知道這是因爲我當前的應用程序使用ASP.NET的MVC框架的UI,但只有一個視圖和一個控制器,並使AJAX調用Web服務來獲取數據顯示。我以爲自己沒有遵循MVC結構,這讓我想到了這一點。

回答

1

您的Rails API仍然是MVC。可以說,「視圖」組件可能只是隱含地產生的。也就是說,Rails有時會使用一組默認行爲來生成隱式視圖。例如,在API中,如果您使用respond_to :jsonrespond_with(@my_object),則會自動生成JSON「視圖」,作爲@my_object.to_json的響應。您可以通過覆蓋@my_object.as_json方法來覆蓋此「視圖」...或者您可以看中它並將Presenter圖層添加到您的對象並讓它生成JSON「視圖」代碼。無論哪種方式,即使您始終沒有明確的視圖模板,它仍然是MVC。

此外,還存在一些Rails寶石,如RABL,如果您喜歡該風格,可以使「視圖」組件/方法更加明確。

+0

好吧,Rails API仍然是MVC。那麼ASP.NET UI呢?它使用ASP.NET MVC框架,但只使用視圖和控制器。它沒有Model組件,但仍然使用AJAX調用獲取數據到使用ORM操作數據的服務。 我可以認爲MVC(雖然它沒有明確的模型組件)?還是隻有應用程序沒有明確的視圖,仍然可以被視爲MVC? – user3587754 2015-04-01 14:09:56

+0

對不起,我不適合回答ASP.NET。但我不認爲我的答案應該被認爲是隻能隱含地處理「視圖」組件。 MVC是一種組織責任的方式。如果你的ASP.NET框架有一個獨立於控制器的專用業務邏輯組件,那麼它可能被認爲是「模型」。但它聽起來像更多的視圖控制器設置。 – pdobb 2015-04-01 14:16:45