如何指定 sinatra 以返回状态为 200 的空正文?
我可以做body ""
,但有没有更明确的方法来做到这一点?
从文档中:
您可以返回任何可以是有效 Rack 响应、Rack 主体对象或 HTTP 状态代码的对象:
- 一个包含三个元素的数组:[status (Fixnum), headers (Hash), response body (responds to
#each
)]- 一个包含两个元素的数组:[status (Fixnum), response body (responds to #each)]
- 一个响应给
#each
定块并只传递字符串的对象- 表示状态代码的 Fixnum
所以返回任何一个
[200, {}, ['']]
[200, ['']]
['']
200
应该做的伎俩。
在设置正文、状态码和标题中,介绍了辅助方法status
和body
(和headers
):
get '/nothing' do
status 200
body ''
end
同样来自文档:
要立即停止过滤器或路由中的请求,请使用:
停
您还可以指定停止时的状态:
停止 410
因此,在您只需要200
状态的情况下,它将是:
halt 200
halt
是 Sinatra 为您提供的最有用的方法之一,值得阅读文档。我经常使用它在处理路由的早期返回错误消息,例如在缺少所需参数时。