SOAP (Simple Object Access Protocol) – это протокол для обмена структурированными сообщениями в формате XML между приложениями через сеть. Он используется в интеграционных проектах для обеспечения взаимодействия между различными системами, когда требуется высокая надежность передачи данных и строгий контроль над структурой сообщений. Ходят слухи, что интеграции на SOAP разрабатывали еще мамонты 🦣 Основные особенности SOAP: 1️⃣ Структурированные сообщения: SOAP-сообщения состоят из конверта (envelope), заголовка (header) и тела (body). Это позволяет четко определить структуру передаваемых данных и дополнительные параметры обработки. 2️⃣ Использование WSDL: Веб-сервисы, работающие по SOAP, обычно сопровождаются описанием интерфейсов с помощью Web Services Description Language (WSDL). WSDL-файл содержит информацию о методах сервиса, параметрах и форматах данных, что упрощает взаимодействие клиентов с сервисом. 3️⃣ Поддержка сложных типов данных: В отличие от RESTful API, где данные передаются преимущественно в формате JSON, SOAP может работать с более сложными структурами данных, включая вложенные объекты и массивы. 4️⃣ Поддержка XSD: В wsdl структура тела(body) описывается с помощью XSD-Schema. XSD - очень крутой инструмент для описания структур в формате XML. Подробнее об этом тут) Но по сути все особенности «мыла» выступают и его же основными проблемами. А если быть точнее, то разработка API в SOAP банально сложнее и дольше, чем сделать примерно тоже самое на RESTful API. А зачем усложнять и делать дольше, если можно этого не делать? Именно поэтому «чилловый» API 🤩 и начал вытеснять собой «мыло». Сейчас, к сожалению(или к счастью) SOAP можно встретить все реже и реже. Обычно он вылазит из каких-то потайных углов legacy-систем, куда шаловливые пальчики разработчиков еще не успели добраться в рамках рефакторинга. #быстростатья
SOAP и веб-сервис на Python: простой пример
Чтобы показать, как работают веб-сервисы, обращаться к которым можно по протоколу SOAP, зачем нужен WSDL, и как это связано с XML-документом в теле полезной нагрузки POST-запроса, сегодня я напишу простое Python-приложение для работы с поставщиками. Хотя вопрос «Чем отличается REST от SOAP» является чуть ли не самым популярным в собеседованиях на роль системного аналитика, мне он напоминает попытку сравнить круглое с зеленым. Начнем с того, что REST API – это архитектурный стиль разработки веб-приложения,...