Давайте создадим простой Rails API и воспользуемся библиотекой Netflixes FastJSON для сериализации наших ответов JSON.
Настройка проекта
Сначала создайте новый проект рельсов в режиме api.
rails new fjsonrail --api --skip-tests -d mysql
Затем в файл гема добавьте драгоценные камни:
gem 'faker', '~> 1.9', '>= 1.9.3' gem 'fast_jsonapi' gem 'kaminari', '~> 0.17.0'
Теперь запустите bundle install и rails db: create, чтобы создать базу данных.
Подготовка некоторых данных
Создайте модель под названием Location, мы будем использовать эти записи для сериализации.
rails g model Location name
И запустите rails db: migrate, чтобы применить изменения к базе данных. Теперь нам нужны образцы данных. Для этого обновим db / seed.rb. Здесь пригодится жемчужина Faker.
Запустите rails db: seed, чтобы он заполнил базу данных.
Контроллеры
Контроллер API
Мы представим некоторые вспомогательные методы нашему базовому контроллеру API. Эти вспомогательные методы будут размещать информацию о разбиении на страницы, например, когда у нас есть коллекция записей.
Контроллер локаций
С помощью методов, определенных в контроллере приложения, наш контроллер местоположений выглядит очень просто.
Сериализатор
Создать сериализатор очень просто. Просто введите:
rails g serializer Location name
и он создаст файл location_serializer.rb в папке app / serializers.
Вот и все
Не забудьте обновить файл routes.rb.
Rails.application.routes.draw do resources :locations, only: [:index, :show] end
Теперь запустим сервер. Путь / местоположения теперь должны отображать список данных местоположения вместе с данными разбивки на страницы, и все они сериализованы с помощью FastJSON.