Мы ищем разработчика Go на срочный трудовой договор, который поможет ускорить разработку одного из наших CyberSec-продуктов.
Если ты готов принять вызов и внести свой вклад в создание инновационных решений, мы будем рады видеть вас в нашей команде.
Задачи:
Этап 1: Парсинг XML и генерация JSON.
Результат: утвержденный заказчиком JSON.
Цель: Принять XML через gRPC, распарсить его в Go-структуры и предоставить JSON для проверки.
1. Интеграция gRPC для загрузки XML:
- Реализация gRPC-сервиса с методом (например, ParseXML), принимающим XML-файл в теле запроса;
- Валидация входных данных (корректность XML, размер файла).
2. Парсинг XML в Go-структуры:
- Использование encoding/xml для маппинга XML-тегов в Go-структуры (теги xml:"...");
- Прописывание XPath-запросов в коде для сложных полей (на основе DOC-справочников, согласованных с системным аналитиком).
Пример:
type Document struct {
Title string xml:"header>title"
Items []Item xml:"body>item"
}
3. Конвертация в JSON и утверждение заказчиком:
- Сериализация Go-структур в JSON через json.Marshal;
- Сохранение результата в лог или временный файл для демонстрации;
- Критерий завершения: Заказчик подтверждает корректность JSON (соответствие данным из DOC-справочников).
Этап 2: Генерация HTML/CSS и PDF:
Результат: PDF-файл, соответствующий данным и стилям.
Цель: Преобразовать утвержденный JSON в HTML с кастомизируемыми стилями и конвертировать в PDF через Gotenberg.
1. Генерация HTML из JSON:
- Создание шаблона на основе структуры JSON (библиотека html/template);
- Динамическое заполнение данных: заголовки, таблицы, списки — всё, что требуется по DOC-справочникам.
2. Кастомизация через CSS:
- CSS отделен от верстки (хранится в отдельном файле, например, styles.css);
- Поддержка замены стилей без изменения кода (заказчик может редактировать CSS-файл).
3. Конвертация HTML в PDF:
- Отправка HTML и CSS в Gotenberg через API (/convert/html);
- Настройка параметров PDF (поля, ориентация) через запрос к Gotenberg;
- Обработка ошибок (битые шрифты, обрезка контента) и валидация результата.
Этап 3: Реализация gRPC-ручки для выдачи PDF.
Результат: готовый сервис с endpoint для скачивания PDF.
Цель: Предоставить эндпоинт, возвращающий сгенерированный PDF.
1. Создание gRPC-эндпоинта:
- Реализация маршрута;
- Привязка к ID обработки (генерируется на этапе 1 при успешном парсинге XML).
2. Логика обработки запроса:
- Поиск сгенерированного PDF по ID (хранение в файловой системе или временном хранилище);
- Возврат PDF с заголовками: http
Content-Type: application/pdf
Content-Disposition: attachment; filename="document.pdf"
3. Интеграция с предыдущими этапами:
- При успешном парсинге XML (Этап 1) запускается цепочка: JSON → HTML → PDF;
- Клиент получает ID обработки через gRPC, затем скачивает PDF по gRPC-ручке.
Мы предлагаем:
- Срочный трудовой договор сроком на 3 месяца;
- Гибкий график работы по договоренности;
- Конкурентный оклад;
- Удаленный формат работы в пределах РФ, либо современный офис рядом с м.Охотный ряд/Савёловская;
- Сильную команду экспертов, которая готова поделиться знаниями;
- Возможность поработать над передовыми продуктами в сфере кибербезопасности.