Привет! Я заметил, что Discourse использует старую версию ActiveModelSerializer.
Она была выпущена пять лет назад, и я не думаю, что это хорошо.
Кажется, что планируется форк AMS, но есть лучшее решение.
Мое предложение — мигрировать с AMS на Alba, JSON-сериализатор, который я создал и поддерживаю. Хотя Alba не на 100% совместима с AMS, её API похож на AMS и работает примерно в 10 раз быстрее последней версии AMS.
Если мейнтейнеры согласятся на миграцию, я отправлю PR.
Не могли бы вы в рамках PR переключить 2 или 3 конечных точки на новый вариант и запустить несколько тестов производительности? Это поможет нам его оценить
Я полагаю, что это улучшит производительность, поэтому я запущу скрипт бенчмарка.
Я не знал о плагинах сериализаторов. Нашел один пример плагинов, которые кастомизируют сериализатор.
Здесь метод include_votes? кажется магическим методом от AMS, так как я не могу найти, где он используется в коде. Думаю, в таких случаях нам потребуется миграция, поскольку Alba не поддерживает такое поведение.
Поддержание совместимости должно быть важно, поэтому, если я не смогу сделать Alba совместимой с существующими плагинами, я предпочту не переходить на неё.
Ах, спасибо, похоже, он просто определяет несколько вспомогательных методов, которые возвращают, включен ли плагин или нет, а также тело плагина. Думаю, я могу сделать его совместимым с Alba, давай попробую.
Извините. Я недостаточно внимательно изучил оригинальный плагин. Похоже, моя подсказка может быть не такой полезной, как я думал.
Если вы добавляете что-то в существующие сериализаторы (например, добавляете поле в сериализатор поста), то я помог. Если же вам нужно добавить новый маршрут, который возвращает собственную информацию, то вам потребуется сделать что-то другое.