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

Mic*_*cah 2 api rest ruby-on-rails

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

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

有没有(简单)方法使用Rails路由执行此操作?其他人做类似的事情?

mik*_*ike 5

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

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