在 API 中展示资源
presenting resources in API
我正在准备 Rails 5 API 并且我有一些 GET 端点,它们除了向最终用户提供资源外什么都不做。
我如何限制用户可以看到的内容。假设我有一个 table Books
,带有 title
和 author
列,我希望最终用户使用 title
和一个 author
但我不想给他诸如 :id 或时间戳之类的东西。有没有现有的解决方案类似于葡萄必须提供的 present()
和 Grape::Entity
类?
最简洁的方法是使用序列化程序。
# 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
我正在准备 Rails 5 API 并且我有一些 GET 端点,它们除了向最终用户提供资源外什么都不做。
我如何限制用户可以看到的内容。假设我有一个 table Books
,带有 title
和 author
列,我希望最终用户使用 title
和一个 author
但我不想给他诸如 :id 或时间戳之类的东西。有没有现有的解决方案类似于葡萄必须提供的 present()
和 Grape::Entity
类?
最简洁的方法是使用序列化程序。
# 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