我有一個現有的域,控制器視圖(爲後者自動生成),它在瀏覽器中按預期工作。 如果我有.../user/show/1或.../user/show的URL,它也可以在curl中工作,也就是說,我使用違背REST原則的操作。 所以,我已經加入到URLMappings文件Grails,與休息延伸
"/rest/user/$id?"(resource: "user")
它使用自動生成的控制器。 現在可以使用curl和.../rest/user/1但不能.../rest/user - 它運行show方法而不是索引方法。但是... /用戶會去索引並返回一個列表。 雖然瀏覽器繼續工作,但我注意到這些URL是其他/用戶類型的。
所以我覺得我還沒有真正理解這一點。我可以在URLMappings文件中有兩個指向同一地點的規則嗎?根據Grails 2.4.4文檔,沒有id的url將使用index()方法..../rest/user不是 - 它轉到show()。
我有工作,但我很確定我沒有做對。
問候, 約翰
那麼文檔是不是真的創造呢?如果我希望它是自動的,可以選擇通過REST或通過瀏覽器訪問域名? – John 2015-03-19 12:46:25
我用2個不同的控制器做到了。一個用於REST,另一個用於Web。我爲每個控制器創建了映射。如果你已經有一個用於Web的UserController,嘗試將其重命名爲UserWebController併爲其創建URL映射。我認爲Grails嘗試使用UserController作爲RESTful,但它不是RESTful或是它? 我認爲grails需要RESTful Controller來使你的域可用,如果你已經沒有,那麼grails會爲你創建一個或者使用一些默認的RESTful控制器。但是你已經有一個UserController。 – CyberAleks 2015-03-19 13:15:02
看看Grails RestFulController。它是RestFulController的模板。 Ctrl + Shift + T並在編輯器中輸入RestFulController。 – CyberAleks 2015-03-19 13:22:12