Солар

Разработчик Go (проект на 3 месяца)

Не указана
  • Москва
  • Проектная работа
  • Удаленная работа
  • От 3 до 6 лет

Мы ищем разработчика 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 месяца;
  • Гибкий график работы по договоренности;
  • Конкурентный оклад;
  • Удаленный формат работы в пределах РФ, либо современный офис рядом с м.Охотный ряд/Савёловская;
  • Сильную команду экспертов, которая готова поделиться знаниями;
  • Возможность поработать над передовыми продуктами в сфере кибербезопасности.