Попробовав впервые Netflix Fast JSON API Serializer с Ruby on Rails, я хотел бы указать на некоторые его отличия от Active Model Serializer (AMS). Я использовал один и тот же проект один раз для обоих, сначала с использованием AMS, а второй раз с использованием Fast JSON API.

Определите сериализатор для ресурса:

при использовании AMS класс CustomerSerializer наследуется от ActiveModel :: Serializer для применения ожидаемого поведения.

где при использовании Fast JSON API FastJsonapi :: ObjectSerializer включается в CustomerSerializer вместо наследования от базового драгоценного камня. Также в атрибутах не требуется ключа : id, потому что гем fast_json_api по умолчанию требует : id для любого объекта, который передается через инициализацию.

В контроллере:

При использовании AMS по умолчанию контроллер использует сериализатор, соответствующий классу объекта.

При использовании Fast JSON API используемый сериализатор должен быть специально определен в контроллере, и новый экземпляр класса сериализатора получает результат, который должен быть отображен в качестве аргумента.

Презентация ресурсов:

вот как выглядит результат из приведенного выше кода с использованием AMS

и вот как выглядит результат с использованием Fast JSON API. По сравнению с AMS, Fast JSON API предоставляет больше информации, позволяя распознать ресурс только по содержимому ответа. Подробнее о структурах документов Fast JSON API здесь.

Представление:

Тесты производительности Fast JSON API показывают увеличение скорости в 25 раз по сравнению с AMS.

Вы можете запустить тестовые тесты самостоятельно. Обратитесь к этому ридми.

В целом я нашел Fast JSON API лучшим решением для использования с Ruby on Rails. Это отличный стандарт ответа, позволяющий сэкономить время. Основная причина, по которой я предпочитаю использовать Fast JSON API вместо AMS, заключается в том, что последнее обновление AMS было около двух лет назад.