新手问题 Grape 怎么返回 HTML?

lingxueyu · 2015年06月05日 · 最后由 lingxueyu 回复于 2015年06月07日 · 2759 次阅读

使用 Grape 写 api 的时候遇到需要返回 html 页面的问题,但是 render 行不通,网上查了挺多,但是依然没有解决

我其实就想在 rails+grape 的情况下解决 api 接口返回 html 页面的问题。。。。不是叫我重新换框架。。不如语言也换了好了。。。

共收到 9 条回复
module Twitter
  class API < Grape::API
    version 'v1', using: :header, vendor: 'twitter'
    format :json
    prefix :api

format 有么?

#1 楼 @chenge 有的

module API
  class News < API::Root
    version 'v2'
    format :json
    content_type :html, "text/html"

    get :news do
      @news     = New.all
      @total    = @news.count
      @news     = @news.paginate(:page => params[:page], :per_page => 20) 
      present :total, @total
      present :status, :success
      present :data, @news, with: API::Entities::News
    end

    get :news_detail, :html => 'news_detail' do
      @news  = New.find(params[:id])
      @news.pv += 1 
      render '/views/news_detail'
    end
  end
end
3楼 已删除

你是需要 html,那么 format 是不是应该改成 html?

#4 楼 @chenge missing mime type for html format :html 会报错

Sinatra + grape 吧 或者直接上 rails

#6 楼 @flowerwrong 我用的就是 rails+grape

所以用 Rails 不就好了 https://ruby-china.org/topics/25822

直接回来一段字符串得了。

#8 楼 @rei 嗯我决定还是不用 grape,直接拿 rails 写好了,果然还是原配好呀

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册