Что это
Протокол XML-сообщений для обмена между системами по формальному контракту.
Протокол обмена XML-сообщениями для интеграции enterprise-систем и веб-сервисов
SOAP заметно представлен в московских IT-вакансиях, и главный его потребитель — не разработчик, а системный аналитик: эта роль встречается в объявлениях чаще других. Протокол живёт в enterprise-интеграциях — банках, страховании, госсекторе и связке с 1С. Учить его в отрыве от REST нет смысла: REST API стоит рядом почти в каждой вакансии, работодатели ждут оба подхода.
Протокол XML-сообщений для обмена между системами по формальному контракту.
В корпоративных интеграциях, унаследованных сервисах, системном анализе, тестировании API, 1С и закрытых межсистемных обменах.
Помогает понять, почему интеграция падает: контракт, XML, namespace, авторизация, версия операции или ошибка на стороне сервиса.
SOAP (Simple Object Access Protocol) — протокол обмена структурированными сообщениями между системами. Каждое сообщение — XML-документ строгого формата: конверт Envelope, внутри него служебный Header и обязательный Body с данными запроса или ответа. Формат обмена жёстко фиксирует контракт — WSDL-файл со схемами XSD: из него видно, какие операции есть у сервиса, что передавать на вход и что придёт в ответ. За эту строгость SOAP выбирают там, где цена ошибки высока: банковские шины, госсистемы, страхование, обмен с 1С. Транспортом чаще всего служит HTTP, но конверт можно доставить и через очереди сообщений — протокол от транспорта не зависит.
Он открывает WSDL, находит нужную операцию, проверяет схему, собирает запрос, отправляет его через инструмент или код, читает ответ и объясняет, почему сервис вернул Fault. Важна не магия протокола, а точность в деталях сообщения.
SOAP усиливает системного аналитика, тестировщика, интеграционного разработчика, специалиста по 1С и инженера поддержки. Он показывает, что человек умеет работать с формальными межсистемными контрактами, а не только с удобными примерами API.
SOAP нужен там, где две системы договариваются не на уровне свободного JSON, а через строгий XML-контракт. Рабочая цепочка начинается с WSDL, продолжается сборкой запроса, проверкой пространства имён, отправкой сообщения, разбором ответа и обработкой Fault, если сервис вернул ошибку.
WSDL
Сначала читают операции, типы и адрес сервиса.
XML
Потом собирают Envelope, Header и Body.
Namespaces
Проверяют, что элементы связаны с нужной схемой.
Fault
Читают ответ и отличают Fault от сетевого сбоя.
Версия
Сверяют контракт и совместимость клиента.
SOAP переносится между ролями: Системный аналитик, Ручной тестировщик, Разработчик 1С. В одном треке этот навык может быть основным рабочим инструментом, а в другом - сильным прикладным усилителем основной специализации.
Системный аналитик — самый заметный профиль в распределении ролей по навыку.
Ещё 7 ролей используют SOAP
Текущий срез показывает активные вакансии сейчас. Распределение по ролям рассчитано по расширенной исторической выборке, поэтому значения могут быть выше текущего количества активных вакансий.
SOAP ценен не абстрактным знанием инструмента, а повторяющимися рабочими задачами — ниже они разобраны так, как встречаются в реальной работе.
Прочитать WSDL
Найти операции, входные сообщения, типы данных, обязательные поля и адрес сервиса.
Собрать SOAP-запрос
Сформировать Envelope с правильными пространствами имён, Body и тестовыми значениями.
Разобрать Fault
Понять, что именно сообщил сервис: неверный формат, отсутствующее поле, отказ авторизации или внутренняя ошибка.
Сверить журналы
Сравнить то, что отправил клиент, с тем, что получил сервис, и найти место искажения.
Проверить версию контракта
Убедиться, что клиент и сервис используют совместимые операции, схемы и обязательные поля.
Описать сценарии ошибок
Зафиксировать примеры успешного ответа, технической ошибки, бизнес-ошибки и недоступности сервиса.
SOAP имеет другую модель: сообщение, контракт, XML-схема и Fault. Если смотреть на него как на обычный JSON API, диагностика будет неверной.
Пространства имён могут быть причиной ошибки даже при похожей структуре XML. Их нужно проверять так же внимательно, как названия полей.
Пример запроса помогает стартовать, но контракт показывает реальные ограничения, типы, операции и варианты ответа.
Fault означает, что сервис обработал сообщение и вернул формальную ошибку. Это другой случай, чем таймаут или недоступный адрес.
Новое обязательное поле или изменение типа может сломать старых клиентов, даже если команда считает правку небольшой.
SOAP не главный выбор для нового публичного API. Но в корпоративных контурах он жив до сих пор. Причина простая: вокруг уже есть партнёры, сертификаты, регламенты и клиенты, которые завязаны на старый контракт. Быстро переписать такой обмен обычно дороже, чем грамотно его сопровождать. И менять такой контур всегда рискованно. Поэтому навык ценят не за модность протокола, а за спокойную поддержку критичной интеграции. Нужно быстро понять, где проблема: в XML, WSDL, namespace, сертификате, сети или логике сервиса. Такой специалист особенно нужен там, где ошибка обмена бьёт по платежам, документам, статусам, срокам и проверкам.
SOAP ценят не за знание термина, а за конкретную пользу в ежедневной работе команды.
Навык редко существует изолированно: он встроен в процессы, инструменты и смежные роли, поэтому спрос держится дольше.
Специалист с SOAP быстрее проверяет гипотезы, решает задачи и меньше зависит от ручной передачи работы между людьми.
SOAP формирует устойчивый спрос внутри своего рабочего сегмента.
SOAP сохраняет устойчивый прикладной спрос на рынке: 391 активных вакансий, #38 по рынку, 5.7% IT-вакансий. Ниже показано число открытых вакансий на конец каждого месяца: это исторический ряд по состоянию на конец месяца, а не текущий срез рынка на сегодня.
#38 по рынку • 5.7% IT-вакансий
-46 вакансий и -8% к предыдущему месяцу.
Зарплату в SOAP-вакансиях определяют роль и грейд, а не сам протокол — актуальные цифры смотрите в рыночном блоке этой страницы. Чаще всего SOAP ждут от системных аналитиков: банкам и госсектору нужны люди, которые сами читают WSDL и...
77 вакансий с зарплатой в расширенной зарплатной выборке
Основной зарплатный ориентир по Senior-вакансиям
Senior - основной уровень рынка (59%)
SOAP редко живёт изолированно: чаще всего рынок видит его рядом с REST API, SQL, Kafka. Самая плотная связка сейчас - REST API: оба навыка встречаются вместе в 93% вакансий.
Главная связка: REST API • 93% вакансий. Показываем общерыночные связки SOAP: не junior-минимум из блока выше, а навыки, которые чаще всего встречаются рядом с ним в одной вакансии.
навыки, которые рынок чаще всего видит рядом в одной вакансии
Сейчас на рынке 20 активных junior-вакансий с SOAP. Это 6.1% всех вакансий по навыку, поэтому для старта важнее всего смотреть на реальный объём junior-окна и на стек, который рынок ждёт рядом.
6.1% всех вакансий по навыку • Senior / Junior 9.7x
Окно входа узкое: рынок чаще нанимает с опытом.
Медианная вакансия с SOAP ожидает около 14 навыков в стеке. Это собранный стартовый набор: рынок обычно ищет не один изолированный инструмент, а рабочую комбинацию соседних навыков.
навыки из junior-вакансий, где встречается SOAP
Выбор зависит от того, что важнее: строгий контракт или гибкость обмена. Если вокруг уже есть старый формальный контур, SOAP обычно удобнее поддерживать, чем заново придумывать новый формат.
Строгий XML-обмен по контракту.
Нужен в старых корпоративных интеграциях.
Требует аккуратной работы с WSDL, XML и безопасностью.
Гибкие HTTP-интерфейсы вокруг ресурсов.
Удобен для веба и публичных API.
Слабая дисциплина быстро размывает контракт.
Удалённые вызовы по строгой бинарной схеме.
Полезен для внутренних сервисов.
Менее удобен для ручной проверки.
Асинхронная передача задач и событий.
Подходит, когда ответ не нужен сразу.
Не заменяет синхронный SOAP-вызов.
SOAP используют там, где две системы должны обмениваться данными по строгим правилам, а совместимость важнее скорости изменений. Обычно это закрытые контуры, старые интеграции и обмен, где ошибка сразу останавливает процесс.
Обмен заявками, статусами, договорами, платежными данными и ответами внешних сервисов по строгому контракту.
Интеграции с 1С, ERP и внутренними системами, где важны версии форматов, справочники и контроль ошибок.
Описание операций, полей, ограничений, примеров сообщений и сценариев ошибок для команды разработки и тестирования.
Проверка запросов, ответов, Fault, авторизации, обязательных полей и поведения сервиса при неверных данных.
SOAP заметен в 3 направлениях рынка с долей выше 5%.
В SOAP важны WSDL, XML-схема, Envelope, Header, Body, Fault и namespaces. В реальной работе навык виден, когда человек умеет связать контракт, сообщение, безопасность и фактическую ошибку.
Специалист понимает операции, типы, обязательные поля, адреса, привязки и ограничения, а не просто копирует пример запроса.
Нужны элементы, атрибуты, схемы, namespaces, кодировки и аккуратная проверка структуры сообщения.
SOAP Fault нужно читать как сигнал: неверный контракт, ошибка авторизации, неправильный тип, недоступный сервис или бизнес-запрет.
В корпоративных интеграциях часто встречаются сертификаты, подпись сообщения, токены, защищённые каналы и отдельные требования к заголовкам.
Изменение контракта должно сохранять совместимость там, где это обещано, и явно показывать, какие клиенты должны обновиться.
Важно проверять успешный запрос отдельно. Потом нужно разобрать пустые поля, неверные типы, недоступный сервис, повторный вызов и ошибки на стороне получателя.
SOAP — протокол сообщений со строгой XML-структурой и контрактом. REST чаще строится вокруг ресурсов и HTTP-методов, gRPC — вокруг Protobuf и удалённых вызовов, XML-RPC проще и беднее по возможностям. В рабочих интеграциях эти подходы нельзя выбирать по моде: важны контракт, совместимость, безопасность и существующая система.
Протокол сообщений с XML-структурой, формальным контрактом и отдельной моделью ошибок. Часто живёт в корпоративных интеграциях, где важны совместимость и строгая схема.
Архитектурный подход вокруг ресурсов, HTTP-методов и более свободного формата обмена. Обычно проще для публичных API и веб-приложений.
Подход к удалённым вызовам с Protobuf-контрактом и сильной типизацией сообщений. Часто выбирают для внутренних сервисов с высокой нагрузкой.
Более простой подход к удалённым вызовам через XML. Он легче SOAP, но не даёт такого набора расширений и контрактной строгости.
При сбое SOAP сначала смотрят на три вещи: WSDL, фактический XML и ответ сервиса. Потом проверяют namespace, обязательные поля, сертификат, авторизацию, HTTP-слой и журналы обеих сторон. Важно не путать транспортную ошибку с Fault внутри SOAP. Сервер может ответить по HTTP нормально, но вернуть ошибку уже в Body. И наоборот: сеть может оборваться раньше, чем сервис обработает запрос. Ещё один частый источник сбоев — старая версия контракта. Поэтому для разбора полезно хранить эталонный запрос, эталонный ответ и номер WSDL, по которому работает клиент.
Проверяют операцию, типы и обязательные поля.
Смотрят XML, который реально ушёл в сеть.
Читают Fault, а не только HTTP-статус.
Сверяют логи клиента и сервиса.
Проверяют сертификат, токен и заголовки.
Сверяют WSDL, по которому собран клиент.
Если нужен лёгкий публичный интерфейс для веба или мобильного приложения, REST часто проще для команды и внешних клиентов.
SOAP описывает формат обмена, но не объясняет сам смысл статусов, документов, денег, заявок и правил обработки.
Сертификаты, подписи, токены, права и закрытые каналы нужно проектировать и сопровождать отдельно.
Формальный контракт помогает только тогда, когда изменения фиксируются, тестируются и согласуются с потребителями.
Перспективы SOAP завязаны не только на текущем спросе, но и на том, как навык встраивается в новые платформы, инструменты и рабочие контуры.
Новые публичные API чаще выбирают другие подходы, но старые корпоративные контракты продолжают жить и требовать поддержки.
Главный навык — быстро разобрать сбой обмена и безопасно провести изменение, а не просто знать название элементов XML.
Команды, которые переводят часть обменов на REST или события, всё равно должны понимать старый SOAP-контракт и не потерять смысл данных.
Возьмите открытый SOAP-сервис (например, сервис курсов валют ЦБ), скачайте его WSDL и составьте спецификацию: список операций, структуры запросов и ответов, обязательность полей по XSD. Проверьте каждую операцию...
Спроектируйте обмен между условной CRM и биллингом: опишите операции, составьте маппинг полей между системами, задайте правила обработки SOAP Fault и сценарии повторов с учётом идемпотентности. Оформите как ТЗ для...
Опишите один и тот же сервис двумя контрактами: WSDL с XSD для SOAP и OpenAPI для REST. Составьте таблицу соответствия операций, полей и кодов ошибок, зафиксируйте, что теряется и что упрощается при переходе. Такой...
Постройте набор проверок для выбранного сервиса: позитивные сценарии по каждой операции, негативные с нарушением XSD и пустыми обязательными полями, проверка структуры Fault-ответов. Добавьте assertions на коды ошибок и...
Учить SOAP лучше на одном живом сервисе. Откройте WSDL, найдите операцию, соберите запрос и получите успешный ответ. Потом сломайте одно обязательное поле или namespace и посмотрите, как сервис вернёт Fault. Дальше важно научиться читать контракт как рабочий документ. Проверьте обязательные поля, типы дат, вложенные структуры, адрес сервиса и способ авторизации. После этого сохраните сырой запрос и сырой ответ для двух-трёх типовых ошибок. И отдельно оставьте пару удачных сообщений как эталон. Так картина собирается быстрее. Такой набор даёт больше пользы, чем длинный список терминов, потому что сразу показывает, где именно ломается обмен.
XML и HTTP
Элементы, атрибуты, кодировки, пространства имён, тело HTTP-запроса, заголовки и коды ответа.
WSDL и XSD
Операции, сообщения, типы данных, обязательность полей, ограничения и адреса сервиса.
Запросы и ответы
Envelope, Header, Body, Fault, тестовые значения, авторизация и проверка фактического XML.
Диагностика интеграции
Журналы, сертификаты, версии контракта, таймауты, некорректные поля и расхождения между двумя сторонами.
Соответствие — доля тем навыка, которые охватывает программа курса
Начинать лучше с одного сервиса, а не с истории протокола. Откройте WSDL, найдите операцию, соберите XML-запрос и получите успешный ответ. Потом измените одно поле и посмотрите, какой Fault вернёт сервис. И сохраните оба примера. Это экономит время на первых сбоях. Следующий шаг — разобрать окружение. Проверьте адрес сервиса, сертификат, способ авторизации и журналы клиента. После этого сохраните несколько эталонных сообщений: успешный запрос, ошибка по схеме и ошибка по безопасности. Такой набор быстро превращает SOAP из абстрактной спецификации в понятную рабочую интеграцию.
Найдите операции, типы данных, адрес сервиса и обязательные поля. Сначала нужно понять контракт, а не запускать первый найденный пример.
Сформируйте Envelope с правильным Body, namespaces и тестовыми значениями. Проверьте кодировку и служебные заголовки.
Сравните фактический ответ со схемой, выделите полезные поля и проверьте, как сервис описывает ошибку.
Передайте неверный тип, пустое обязательное поле или неправильное пространство имён, чтобы увидеть реальный Fault.
Зафиксируйте, какие поля критичны, как проверять версию контракта и где искать журналы при падении обмена.
SOAP — это протокол, по которому две системы обмениваются XML-сообщениями по заранее описанным правилам. Обычно сервис публикует WSDL, а клиент должен собрать запрос точно по контракту. Если формат нарушен, сервис часто вернёт Fault с формальной ошибкой.
SOAP чаще нужен там, где живут старые корпоративные интеграции: банки, страхование, ERP, 1С, госпорталы и партнёрский обмен. В таких контурах важны совместимость, формальный контракт, сертификаты и возможность доказать, какое сообщение реально ушло в систему. И формат там меняют редко.
SOAP строится вокруг XML-сообщения и строгого контракта. REST обычно строится вокруг ресурсов и HTTP-методов. Из-за этого SOAP тяжелее на старте, но удобнее там, где схема, ошибки и правила обмена должны быть описаны очень жёстко. Это важно для старых интеграций.
WSDL — это описание SOAP-сервиса. В нём указаны операции, сообщения, типы данных, адрес сервиса и другие правила вызова. По сути это договор между сторонами: без него трудно понять, какой XML отправлять и какую ошибку считать нарушением контракта.
Сначала смотрят на WSDL, фактический XML и ответ сервиса. Потом проверяют namespace, обязательные поля, сертификат, авторизацию, HTTP-слой и журналы обеих сторон. Важно понять, это транспортный сбой или Fault внутри самого SOAP-ответа и где потерялся контракт.
Базовый запрос собрать не так трудно. Сложность начинается позже: нужно понимать WSDL, XML-схему, namespaces, Fault, сертификаты и разницу между ошибкой контракта и сетевой проблемой. Поэтому SOAP лучше учить не по терминам, а на одном живом сервисе.
Envelope — корневой элемент любого SOAP-сообщения, «конверт», в который упакованы запрос или ответ. Внутри два блока: необязательный Header со служебной информацией (токены авторизации, идентификаторы транзакций, маршрутизация) и обязательный Body с полезной нагрузкой — параметрами вызываемой операции или ответом сервиса. Если что-то пошло не так, вместо обычного ответа в Body приходит элемент Fault с кодом и описанием ошибки. Сообщение без Envelope и Body сервер отклонит — стандарт здесь строгий.
Версия 1.2 получила статус рекомендации W3C, более строгую модель обработки ошибок и собственный media type application/soap+xml вместо text/xml. В 1.1 операция передаётся через HTTP-заголовок SOAPAction, в 1.2 — через параметр action в Content-Type. Также в 1.2 переработана структура Fault: вместо faultcode и faultstring — элементы Code и Reason. На практике корпоративные системы в банках и госсекторе до сих пор чаще работают на 1.1, поэтому аналитику полезно уверенно читать обе версии.
Идите от конца к началу: секция service показывает адрес (endpoint), binding — протокол и стиль вызова, portType — список операций с их входами и выходами, message — состав каждого запроса и ответа, types — структуры данных в формате XSD. Практический маршрут: найдите нужную operation в portType, посмотрите её input и output, затем спуститесь в types и разберите поля, типы и обязательность. Через 3–4 разобранных WSDL этот путь занимает минуты.
XSD (XML Schema Definition) описывает структуру данных: какие поля есть у запроса, их типы, обязательность, ограничения на длину и формат. Сервер валидирует входящее сообщение по схеме до выполнения логики — некорректный запрос отбивается сразу с понятной ошибкой. Для аналитика XSD — источник истины при постановке ТЗ на интеграцию: из схемы видно, что именно передавать, а споры «какое поле обязательное» решаются ссылкой на схему, а не перепиской.
SoapUI — настольный инструмент для работы с SOAP-сервисами: подгружаете WSDL, и он сам генерирует заготовки запросов по всем операциям. Дальше подставляете тестовые данные, отправляете запрос и смотрите ответ — без единой строки кода. Аналитики используют SoapUI, чтобы проверить сервис до передачи разработчикам, воспроизвести ошибку из продакшена или показать смежной команде рабочий пример вызова. В вакансиях системных аналитиков он встречается почти так же часто, как сам SOAP.
Да. Postman отправляет SOAP-запрос как обычный HTTP POST: в Body выбираете raw и XML, вставляете конверт с Envelope и Body, добавляете заголовок Content-Type: text/xml и при необходимости SOAPAction. Автогенерации запросов из WSDL, как в SoapUI, здесь нет — конверт собираете руками или копируете из документации. Postman удобен, когда команда уже живёт в нём и держит SOAP- и REST-запросы в одной коллекции.
SOAP не привязан к транспорту: конверт можно доставить любым протоколом. Чаще всего это HTTP/HTTPS — синхронный вызов «запрос — ответ», знакомый по обычным веб-сервисам. Вариант поверх JMS (Java Message Service) — асинхронный: сообщение кладётся в очередь, получатель забирает его, когда готов, а доставка гарантируется брокером. JMS-вариант встречается в банковских шинах данных (ESB), где потеря сообщения о платеже недопустима, а системы-участники работают в разном темпе.
WS-Security — стандарт безопасности на уровне самого сообщения, а не транспортного канала. В SOAP Header добавляются токены аутентификации (UsernameToken, SAML, X.509-сертификаты), цифровая подпись и шифрование отдельных частей конверта. Отличие от HTTPS принципиальное: HTTPS защищает канал между двумя точками, а WS-Security — само сообщение, даже если оно проходит через цепочку посредников. Поэтому стандарт закрепился в банках и госсистемах, где сообщение проверяют на каждом узле маршрута.
Идемпотентность — свойство операции давать один результат при повторном вызове с теми же данными. В SOAP нет HTTP-семантики методов, как в REST, поэтому идемпотентность закладывают в дизайн сервиса: в запрос добавляют уникальный идентификатор операции (requestId), а сервер хранит обработанные идентификаторы и на повтор возвращает прежний ответ вместо повторного списания или создания дубля. Аналитику при описании интеграции нужно явно фиксировать, какие операции безопасно повторять — от этого зависит логика ретраев.
Fault — стандартный формат ошибки: элемент в Body с кодом (faultcode), человекочитаемым описанием (faultstring) и опциональным блоком detail с подробностями от конкретного сервиса. Код Client означает проблему в запросе — неверная структура, непройденная валидация по XSD, отсутствие обязательного поля. Код Server — сбой на стороне сервиса. При разборе инцидента аналитик первым делом смотрит faultcode: он сразу делит зону ответственности между вызывающей и принимающей системами.
Платформа 1С:Предприятие умеет и публиковать собственные веб-сервисы по SOAP, и вызывать внешние. Конфигурация описывает операции, платформа сама генерирует WSDL — внешние системы подключаются к 1С как к обычному SOAP-сервису. Типовые сценарии: обмен документами между 1С и корпоративными системами, выгрузка данных в банк-клиент, интеграция с госсервисами. Отсюда заметный спрос на разработчиков 1С в SOAP-вакансиях — одна из самых частых ролей после системных аналитиков и QA.
Три причины. Первая — работающее наследие: интеграционные шины и АБС строились в 2000–2010-х на SOAP, переписывать их дорого и рискованно. Вторая — строгий контракт: WSDL и XSD жёстко фиксируют формат обмена, что снижает цену ошибки там, где сообщение — это платёж или юридически значимый документ. Третья — зрелые стандарты безопасности и надёжности: WS-Security, подпись сообщений, гарантированная доставка. Пока эти системы живут, спрос на специалистов со знанием SOAP никуда не денется.
Базовый цикл: загрузить WSDL в SoapUI, прогнать позитивные сценарии по каждой операции, затем негативные — пустые обязательные поля, неверные типы, нарушение XSD, некорректный токен в Header. Отдельно проверяют обработку Fault: сервис должен возвращать осмысленные коды, а не пустой ответ. В регресс добавляют проверку обратной совместимости контракта — не сломало ли обновление WSDL существующих потребителей. В московском IT-срезе тестирование даёт 18,7% SOAP-вакансий, и QA Manual — вторая роль по спросу.
Читать WSDL и XSD без подсказок разработчика: находить операции, разбирать структуры запросов и ответов, определять обязательность полей. Собирать и отправлять тестовые запросы в SoapUI или Postman. Описывать интеграции в спецификациях: маппинг полей между системами, обработка ошибок, сценарии повторов. Плюс контекст: как устроены интеграционные шины, чем SOAP отличается от REST и когда что уместно. Именно этот набор проверяют на собеседованиях — судя по 680 упоминаниям роли в московском IT-срезе, проверяют часто.
Редко «большим взрывом» — обычно через фасад: перед SOAP-сервисом ставят REST-прослойку (API gateway или адаптер), новые потребители ходят через REST, старые продолжают работать по SOAP. Аналитик здесь ключевая фигура: он составляет маппинг операций SOAP на ресурсы и методы REST, переносит правила валидации из XSD в JSON Schema или OpenAPI, описывает соответствие Fault-кодов HTTP-статусам. Полный вывод SOAP из эксплуатации в банках растягивается на годы — поэтому знание обоих подходов ценится выше, чем любого по отдельности.
Два порядка разработки сервиса. Contract-first: сначала пишут контракт — WSDL и XSD, — согласуют его со всеми участниками интеграции, потом генерируют код по контракту. Code-first: сначала пишут код сервиса, а WSDL генерируется из него автоматически. Enterprise-практика тяготеет к contract-first: контракт можно согласовать между банком и подрядчиком до начала разработки, и обе стороны пишут код параллельно. Для аналитика contract-first означает, что WSDL — его рабочий документ, а не побочный продукт кода.
Зарплату определяют роль и уровень, а не сам SOAP — актуальные данные смотрите в рыночном блоке этой страницы. Выборка смещена в сторону опытных специалистов: junior-вакансий мало, а перекос к senior — один из самых заметных среди интеграционных навыков. Логика простая: SOAP нужен там, где сложные enterprise-интеграции в банках, страховании и госсекторе, и туда ищут людей, способных самостоятельно разобрать чужой WSDL и спроектировать обмен. Порог входа выше — и оплата соответствующая.
Как навык для работы в enterprise — да. В московском IT-срезе SOAP стабильно упоминается в вакансиях, и спрос растёт. Новые публичные API на SOAP почти не строят, но банки, страховые, госсистемы и 1С-ландшафты продолжают жить на нём, и этим системам нужны аналитики, тестировщики и разработчики. Реалистичная стратегия: учить SOAP не вместо REST, а вместе с ним — REST встречается почти во всех тех же вакансиях, работодателю нужны оба.
Оба подхода контрактные: у SOAP контракт — WSDL и XML, у gRPC — proto-файл и бинарный Protocol Buffers поверх HTTP/2. gRPC быстрее и компактнее, поэтому его выбирают для взаимодействия микросервисов внутри компании. Но SOAP он не вытесняет: gRPC приходит в новые высоконагруженные системы, а SOAP остаётся в legacy-интеграциях банков и госсектора, где переписывание не окупается. Это разные ниши — в вакансиях системных аналитиков SOAP и gRPC почти не конкурируют между собой.