Давайте создадим простой 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.