【问题标题】:presenting resources in API在 API 中呈现资源
【发布时间】:2019-03-25 03:08:14
【问题描述】:

我正在准备 Rails 5 API,我有一些 GET 端点,它们除了向最终用户提供资源外什么都不做。

如何限制用户可以看到的内容。假设我有一张表Books,带有titleauthor 列,我希望最终用户得到他的booktitleauthor,但我不想给他这样的东西: id 或时间戳。是否有类似于葡萄提供的present()Grape::Entity 类的现有解决方案?

【问题讨论】:

    标签: ruby-on-rails ruby api grape presenter


    【解决方案1】:

    最简洁的方法是使用序列化程序。

    # app/serializers/book_serializer.rb
    class BookSerializer < ActiveModel::Serializer
      attributes :title, :author
    end
    

    然后在控制器中:

    def show
      book = Book.find(params[:id])
      render json: book, serializer: BookSerializer
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-05
      • 1970-01-01
      • 2019-05-16
      • 2017-08-05
      • 1970-01-01
      相关资源
      最近更新 更多