Опис проєкту
ПерекладСервіс повинен надавати невеликий передбачуваний HTTP API: відправляємо ідентифікатор шаблону або інлайн-шаблон разом з JSON-об'єктом даних й отримуємо назад або бінарний PDF, або посилання на збережений файл. Шаблони — це HTML і CSS, тому ми очікуємо коректної роботи з розміром сторінки й полями, повторюваними верхніми й нижніми колонтитулами, нумеруванням сторінок, акуратними переносами сторінок й вбудованими кастомними шрифтами, щоб результат точно відповідав нашому брендові. Серверний рендеринг повинен бути детермінованим: однаковий вхід завжди дає по-байтово порівнювальний результат. Для нас важлива коректна обробка таблиць, що розриваються на кілька сторінок, юнікоду й логотипів високої роздільної здатності. Продуктивність теж важлива — ендпоінт повинен швидко рендерити типовий багатосторинковий рахунок і витримувати розумний сплеск одночасних запитів, не падаючи.
Запропонуйте розумний вибір рушія й обґрунтуйте його, упакуйте сервіс в контейнер для незалежного деплоя й включіть підхід до управління шаблонами, версіонування й базової аутентифікації на API. Дайте зрозумілу документацію й робочий приклад, щоб наша бекенд-команда інтегрувала все за один день. При відповіді поділіться досвідом роботи з headless-рендерингом і вбудовуванням шрифтів.
— Чистий HTTP API: на вході шаблон + JSON, на виході PDF
— Попіксельна верстка з колонтитулами, нумеруванням і переносами сторінок
— Вбудовування кастомних шрифтів і повна підтримка юнікоду
— Детермінований відтворюваний серверний рендеринг
— Контейнеризація, незалежний деплой й аутентифікація API
— Документація й робочий приклад інтеграції