2010-11-17 97 views
2

我爲我的Rails應用程序發佈了一個API,並且儘可能保持現實的同時儘可能保持良好和RESTful。我知道Flash和其他一些客戶在GET和POST之外都有其他問題,但我仍然希望爲客戶提供更具REST風格的界面,這些界面可以具有很強的表現力。Rails RESTful API +支持僅允許GET/POST的客戶端 - 是否有可能?

的最佳解決方案,在我的腦海裏,將是建立正常的Rails的REST風格的路由,也讓一個可選的查詢字符串參數,如方法,將允許客戶端使用POST,但模仿另一個動詞。

有沒有一種(簡單)的方法來做到這一點與Rails路由?任何人做類似的事情?

回答

5

是的,客戶端可以指定標頭X-Http-Method-Override。如果標題的值爲put,那麼rails會將請求路由爲PUT。

還有一個參數,_method,理論上應該工作,但在某些情況下它不會(如果您將其添加到POST請求的查詢字符串它不起作用)。有一些機架中間件修復了這些情況:https://github.com/baroquebobcat/rack-methodoverride-with-params

+0

啊,我忘了_method。這是一個好主意。 – Micah 2010-11-18 02:51:17