我正在开发一个用RoR(3.2)编写的小型REST API,我将在Varnish Cache实例后面使用它。
Varnish的cURL VMOD将调用此API来处理用户数量限制。
最重要的是Varnish不擅长处理HTTP数据,除了标题。
所以我想将数据字段作为HTTP标头返回(最多3个字段),但我不确定如何以适当的MVC方式执行此操作。
标题可以被视为有效的视图或呈现格式吗?
是否应在控制器或视图中写入标题? (知道返回的数据将来自2个模型)。
另请注意,我将来必须处理常见的html和json输出。
我知道无论如何这将是一个肮脏的黑客,但请相信我:要求Varnish在响应体上工作,更糟糕的是在json或XML上,x10会更脏......
谢谢!
答案 0 :(得分:1)
如果您想要轻量级应用程序而不调用View管道,请坚持使用标题。
API调用使用标头向客户端发送信息(保持简单)。
在调用视图之前,应该在控制器中写入标头,因为HTTP标头位于正文之前。
您目前可以为视图执行render => :nothing
,只要您想要集成json或xml,就可以添加respond_to操作。
答案 1 :(得分:0)
我想说这是你可以在控制器中设置的东西。看看这个,看看它是否有助于你:
http://work.j832.com/2008/10/ruby-rails-render-and-content-type-http.html
我建议在控制器中执行此操作,因为它听起来好像标题将独立于您呈现的视图。