Rails RESTful API +支持只允许GET / POST的客户端 - 是否可能?

时间:2010-11-17 22:33:54

标签: ruby-on-rails api rest

我正在为我的Rails应用程序发布一个API,我正在尽可能地保持良好和RESTful,同时保持现实。我知道Flash和其他一些客户在GET和POST之外的任何事情都有问题,但我仍然希望为那些具有表现力的客户提供更多RESTful接口。

在我看来,最佳解决方案是设置正常的Rails RESTful路由,但也允许一个可选的查询字符串参数,如 method ,允许客户端使用POST但模仿另一个动词。

使用Rails路由有一种(简单)方法吗?其他人做类似的事情吗?

1 个答案:

答案 0 :(得分:5)

是的,客户端可以指定标题X-Http-Method-Override。如果标头的值为put,则rails会将请求路由为PUT。

还有一个参数_method,理论上应该可以工作,但在某些情况下它不会(如果你将它添加到POST请求的查询字符串中它不起作用)。有一些机架中间件可以修复这些情况:https://github.com/baroquebobcat/rack-methodoverride-with-params