我想从我的grape / rest api返回原始数据/ blob。
我跟着帖子:https://github.com/intridea/grape/issues/412
代码如下:
get 'foo' do
content_type 'text/plain'
"hello world"
end
1) 我用过:格式'txt' - 我的引用文字如下:“你好世界” 虽然浏览器没有错误,curl给出Content-Type:text / plain但引号不会被删除
2) env ['api.format'] =:txt 在浏览器中出错
3) content_type:txt,'text / plain' 在浏览器错误的args数中给出错误
还有其他方法可以解决这个问题吗?
感谢。
答案 0 :(得分:1)
在方法上方使用content_type :txt, 'text/plain'
并使用body
方法为我工作。这是我的代码片段:
content_type :txt, "text/plain"
desc "ping pong"
get "/ping" do
challenge = params["hub.challenge"]
challenge = "pong" if challenge.to_s.empty?
status 200
body challenge
end
答案 1 :(得分:0)
根据this,您可以执行以下操作:
class API < Grape::API
get 'foo' do
content_type 'text/plain'
body 'hello world'
end
end
答案 2 :(得分:0)
您不需要使用&#39; body&#39;,剩下要做的就是在API类中添加一行(在此方法之上):
content_type :txt, 'text/plain'
因此Grape使用:txt格式化程序用于所有提供文本/纯文本内容的端点
答案 3 :(得分:0)
这对我有用:
get 'foo' do
content_type 'text/plain'
env['api.format'] = :binary
body 'Stuff here'
end
env ['api.format'] =:binary#:binary没有格式化程序,数据将“按原样”返回
只要您不覆盖:binary
格式程序,就可以了。