从已返回的葡萄api

时间:2015-05-07 01:52:47

标签: html ruby thin grape

我想从我的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数中给出错误

还有其他方法可以解决这个问题吗?

感谢。

4 个答案:

答案 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

The documentation说:

  

env ['api.format'] =:binary#:binary没有格式化程序,数据将“按原样”返回

只要您不覆盖:binary格式程序,就可以了。