Rails中的RESTful内容协商

Ale*_*zzi 6 rest mootools json ruby-on-rails content-negotiation

我想在Rails应用程序中的某些资源上实现内容协商.我正在使用Mootools,并且可能能够将XMLHTTPRequest接受的内容类型调整为"application/json".

有没有办法在我的控制器中获取这些信息并生成JSON响应而不是XHTML?

我试图避免做类似的事情:

http://site/resource/1?format=JSON
Run Code Online (Sandbox Code Playgroud)

...因为它弄脏了我的URL,强加了一定程度的冗余并且不那么灵活.

谢谢!

小智 9

http://site/resource/1.json未正确使用内容协商.关键是URL应该保持不变,但客户端要求基于它随请求发送的HTTP头的特定表示(JSON,PDF,HTML等).


Joh*_*ley 4

respond_to您可以在控制器方法中使用节,如下所示:

respond_to do |format|
  format.html { # Generate an HTML response... }
  format.json { # Generate a JSON response... }
end
Run Code Online (Sandbox Code Playgroud)

Rails 根据客户端提交的 HTTP Accept 标头的值确定响应格式。