ruby/grape问题

 明依丞 发布于 2022-10-26 09:21

想问一下ruby grape里以下的present,with,type都是什么意思?看了小半天也没懂。谢谢。

module API
  class Statuses < Grape::API
    version 'v1'

    desc 'Statuses.', {
      params: API::Entities::Status.documentation
    }
    get '/statuses' do
      statuses = Status.all
      type = current_user.admin? ? :full : :default
      present statuses, with: API::Entities::Status, type: type
    end
  end
end

文档地址:https://github.com/intridea/grape-entity/blob/master/README.md

1 个回答
    • present 类似于 rails 的 render

      class XxxEntity
        expose foo
      end
      
      present value, with: XxxEntity
      // output:
      //   { foo: 'xxx' }
      
    • with 就是指定数据用哪一个 Entity 来处理,你可以把 Entity 看做 json 的 erb,他提供了 json 的模板。

    • 至于 type 不是 present 的参数,而是是传给 Entity 的自定义参数,会传递到 Entity 内部,做一些处理。例如决定某个属性需不需要显示,或者传给 expose 的 block 作为 options 参数,可参考 README https://github.com/intridea/grape-entity#conditional-exposure

    2022-10-27 00:34 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有