2010-11-17 96 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