Попробовав впервые 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 было около двух лет назад.