[BACK-GOV-03] Реализация сетевого SOAP-сервера и XML-моделей запроса/ответа

Бэкенд: Архитектура

Published

October 14, 2026

NoteКраткая карточка задачи
  • Репозиторий / Компонент: gov_identity_soap_mock.
  • Язык: Go (1.27+).
  • Тип задачи: Backend (Стековые компоненты).
  • Статус: Готово к реализации

Описание задачи

Необходимо поднять HTTP-сервер на порту :8000 и разработать строго типизированные структуры (типы данных) для разбора входящих и формирования исходящих enterprise-сообщений в формате SOAP/XML.

Инструкция по шагам

  1. Моделирование входящего SOAP-конверта: На основе стандартного пространства имен http://xmlsoap.org описать структуру SoapEnvelopeRequest и вложенный Body-объект для метода fetch_secure_employee_data, принимающий email и master_token.
  2. Моделирование исходящего ответа: Спроектировать XML-структуру SoapEnvelopeResponse, поддерживающую атрибуты пространств имен soapenv и gov. Поля профиля сотрудника (inn, passport, snils, gov_status) должны содержать тег omitempty, чтобы не сериализоваться в XML в случае ошибок.
  3. Инициализация HTTP-сервера: В функции main() настроить стандартный роутер http.HandleFunc на корневой путь / и запустить прослушивание порта через http.ListenAndServe(":8000", nil).
  4. Функция отправки ответа: Реализовать хелпер sendSoapResponse, выполняющий маршалинг структуры ответа с отступами (xml.MarshalIndent), установкой заголовка Content-Type: text/xml; charset=utf-8 и явной записью XML-заголовка xml.Header в тело HTTP-ответа.