представление ресурсов в API - PullRequest
       29

представление ресурсов в API

0 голосов
/ 20 октября 2018

Я готовлю Rails 5 API, и у меня есть некоторые конечные точки GET, которые ничего не делают, кроме представления ресурсов конечному пользователю.

как я могу ограничить то, что может видеть пользователь.Допустим, у меня есть таблица Books с title и author столбцами, я хочу, чтобы конечный пользователь получил свои book с title и author, но я не хочу давать ему такие вещи, как:ID или метки времени.Есть ли существующее решение, подобное тому, что может предложить виноград с классами present() и Grape::Entity?

1 Ответ

0 голосов
/ 20 октября 2018

Самый чистый способ сделать это - использовать сериализатор.

# 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
...