Александр П.
Вне зависимости от того, чем занимается компания, для оптимизации и упрощения процессов используется целая россыпь программных продуктов:

Функция

Программное решение

CMS для сайтов

1С-Битрикс, WordPress, Joomla, OpenCart

CRM-системы

Битрикс24, Salesforce, amoCRM, Мегаплан

Системы учета и автоматизации

SAP, 1C, МойСклад, Парус

Ряд программ буквально “в два клика” можно интегрировать между собой. Для других же необходимо программировать дополнительный функционал.

Современные и не очень технологии выделяют несколько методов работы в Интернете:
  • Доступ к файлам через FTP;
  • Неструктурированные HTTP-запросы, соглашения между разработчиками;
  • Веб-службы (REST, SOAP, AJAX и т.д.);
  • Необычные: сокеты, порты, двоичные объекты.
В этой статье поговорим о веб-службах REST и SOAP — их различиях общем и  с другими службами.

Сервисы веб-интеграции

Сервисы веб-интеграции (или веб-сервисы) — это технологии, при помощи которых различные системы передают друг другу данные (двусторонний обмен).

9 из 10 веб-сервисов работают по HTTP или родительскому протоколу.

В упрощенном виде, большинство запросов к таким сервисам - это стандартные ссылки, при помощи которых переходим к нужному ресурсу для обмена с конкретными базами или выполнения определенных действия.

Одним из главных отличий веб-служб от простых HTTP запросов является наличие задокументированной четкой структуры с рядом общих стандартов. Например, если применять SOAP (строгое к правилам решение), то возможно сразу приступать к настройке структур БД и другим функциям, т.к. все начальные моменты учтены и решены.

Список самых популярных сервисов веб-интеграции:
  • XML-RPC (XML Remote Procedure Call) — протокол для удаленного доступа к использованию XML. Предшественник SOAP, прост в применении;
  • SOAP (Simple Object Access Protocol) — стандартный протокол версии W3C, который структурирован и весь задокументирован;
  • JSON–RPC (JSON Remote Procedure Call) — относительно современный вариант XML - RPC. Главное отличие состоит в том, что сведения передаются только в формате JSON;
  • REST (Representational State Transfer) — это архитектурный стиль, основанный на методах HTTP;
  • специализированные протоколы под конкретные задачи (GraphQL, OData, Ajax);
  • редко встречающийся, но эффективный gRPC — используется для передачи данных  в двоичном виде и использует HTTP/2 в качестве транспорта.
p.s. да, мы назвали ДАЛЕКО не все протоколы. Но часть из них морально устарела и её возможно встретить только на проектах ранних 2000-х. Другая группа — новые модно-молодежные, но их возможности, плюсы и минусы еще требуют подробного изучения и тестирования на практике.

Здесь мы поговорим о том, что же такое SOAP и REST.

Что такое SOAP

Простыми словами SOAP (или Simple Object Access Protocol) – это простой протокол доступа к объектам, в котором не только вызов процедур, но и передача БД происходит в формате XML.

Базовые элементы (теги) SOAP:
  • Envelope. Обязательный корневой элемент. Непосредственно он определяет сообщения и пространство времен;
  • Header. Он же заголовок. Не является обязательным элементом, но содержит необходимые атрибуты для обработки сообщения (информация об идентификаторе, маршрутизации или безопасности);
  • Body. Обязательный элемент, в котором содержится основная информация из сообщения;
  • Fault. Необязательный, но полезный элемент. В нем содержится информация об ошибках, которые возникают в процессе обработки сообщений.

Преимущества SOAP

Недостатки SOAP

стандартизация по версии W3C

сложно реализовать

строгая спецификация

сложно и долго парсить в XML

понятная поддержка с продуктами Microsoft


однозначность


Пример SOAP:
  • запрос;
    Пример SOAP запроса
  • ответ.
    Пример SOAP ответа

Что такое REST

Representational State Transfer — примечание — это архитектурный стиль, а не протоколом. Простыми словами REST — это набор правил и условий для программиста. Если специалист придерживается этим условиям, настройка обмена данными его проекта с другими сервисами будет быстрой и безболезненной.

Особенность REST — данные передаются в исходном виде, не требуя конвертации. Это создает нагрузку на сеть, но разгружает веб-сервер.

Методы HTTP для работы с REST:
  • GET — получение;
  • POST — добавление;
  • PUT — изменение;
  • DELETE — удаление.
Используя эти методы, получается выполнить условный CRUD или Create – Read – Update – Delete для всех типов информации, с которыми будет идти манипуляции.
На практике в 9 из 10 случаев используешь лишь 2 — GET, чтобы получить данные и POST для всего остального.



Подсказка бывалого программиста

Преимущества REST

Недостатки REST

прост в программировании

нет спецификации

нет больших требований к ресурсам

сложно и долго парсить в XML

нет требований к замысловатым программным надстройкам

нет чётких методов для управления базами

Пример REST:
  • запрос;
    Пример REST запроса
  • ответ (нужен новый скрин).
    Пример REST ответа

Чем же настроить веб-интеграцию?

Так каким же методом интеграции правильно пользоваться?


Очевидный вопрос
Для ответа на этот вопрос важно знать, над каким проектом идет работа.

XML-RPC метод морально и технически устарел — JSON-RPC его заменяет куда более эффективно. При этом сами протоколы RPC применимы только в простейших системах, имеющих небольшое число информации и API-методов.

SOAP популярен для комплексных корпоративных проектов, где применяется сложная замысловатая логика и необходимы единые стандарты, актуальные для продолжительного использования (комплексная автоматизация для больших предприятий создаётся годами).

Но, самым распространенным в Сети является REST. И это объяснимо — когда “твой код” подчиняется правилам CRUD, интеграция с подавляющим большинством современных популярных сервисов запустится быстро. А с развитием спецификации OpenAPI и ряда инструментов Swagger, появилась возможность стандартизированного документирования разрабатываемого API, и даже тестирование взаимодействия с этим API без ожидания полноценной реализации.

Веб-интеграция и Битрикс

О применении и настройках различных интеграций сервисов и ресурсов на Битрикс мы написали отдельную статью с примерами.

Чего там пока нет, но планируем дописать — 1С-Битрикс: Управление сайтом выпустили отдельный готовый модуль для работы с REST API.

Использование REST и SOAP в больших бизнес-проектах

Настройка интеграции различных веб-сервисов между собой — типичная задача для веб-интегратора ИНТЕРВОЛГА. Приведем пример использования SOAP и REST интеграций в рабочем проекте.

Компания ЕВРАЗ — один из лидеров российского и мирового рынка металлопроката и металлоизделий. ИНТЕРВОЛГА уже много лет сотрудничает с этим металлургическим гигантом и создаёт для него инновационные автоматизированные веб-системы, применяя и REST и SOAP-технологии. А теперь перейдем к конкретике.

Разработка Личного кабинета для партнеров ЕВРАЗ Металл Инпром. Учетная система компании выступает веб-клиентом, а сайт сервером. Интеграция и передача необходимых сведений настроена SOAP методом.

Если же необходима интеграция не корпоративной системы между собой, а связь со сторонним сервисов (другим кодом), мы используем REST-методы. Например, Личный кабинет кандидата на работу, инструмент автоматизации бизнес-процессов HR отдела. Для заказчика необходимы была интеграция с Хантфлоу. При помощи REST API этот функционал был нами реализован.

Выводы

Все технологии нужны, все методы важны. Главное — определить подходящий для вашего проекта вариант веб-интеграции и правильно его реализовать.

Компания ИНТЕРВОЛГА — компетентный веб-интегратор, в которой собраны опытные программисты, способные подобрать и реализовать необходимые IT-решения для интеграции.
Оцените статью
09.07.2019
Понравилась статья?
Поделитесь ссылкой с друзьями и коллегами!

Статьи по теме

Выжимаем максимум скорости из PHPКогда дело доходит до запуска PHP-приложений, выбор подходящего веб-сервера критически важен. Цель статьи — помочь в выборе оптимального решения для своих проек...
Организация поиска на сайте: выбираем между поиском Битрикса, Sphinx и ElasticsearchВ статье разбираем популярные поисковые движки, чтобы выбрать лучший под задачи конкретного проекта. Даем советы по индексации каталога и построении «умного» фи...
Доработка системы LMS KnomaryMust have для бизнеса, где главный актив это люди, — стратегия обучения и развития персонала. Рассказываем как помогли доработать LMS-систему для компании ЕВРАЗ...
«Как раньше» больше не работает — B2B-система продаж сейчасВ этой статье хотим поговорить с чем сейчас сталкивается оптовый бизнес (множеством вызовов и изменений, которые требуют адаптации, а также оптимизации процессо...
Интеграция B2B-платформы на Битрикс с системой авторизации KeycloakВ период бурного роста компании менеджмент учетных записей сотрудников и клиентов может стать проблемой. Решение — интеграция с брокером авторизаций Keycloak ил...
Разработка календаря бронирования для сайта на Битрикс авиационного учебного центраЧтобы пилоты авиакомпаний могли бронировать время своих тренировок в учебном центре, мы разработали для них удобный модуль бронирования времени. Рассказываем по...
Мы работаем по одному из двух форматов:
  • аренда команды (от 2 человек, не менее 3 месяцев);
  • итерации с фиксированной ценой (1-3 месяца длительностью).
ИНТЕРВОЛГА предоставляет:
  • регулярные онлайн-планерки с заказчиком;
  • квалифицированных специалистов;
  • организованную команду (находятся в одном помещении, что упрощает решение рабочих вопросов);
  • полную прозрачность и регулярность отчетов о результатах.
Ключевые услуги:
  • нагруженный интернет-магазин;
  • личный кабинет;
  • оптовые продажи — B2B-платформа;
  • маркетплейс;
  • технический аудит сайта;
  • Битрикс24 — корпоративные HR-порталы;
  • Битрикс24 — построение CRM-системы;
  • Битрикс24 — личные кабинеты сотрудников;
  • Битрикс24 — аудит портала;
  • 1С — интеграция с другими системами;
  • 1С — доработка системы;
  • маркетинг — комплексное интернет-продвижение;
  • маркетинг — продвижение для B2B.
Хотите получать лучшие статьи от INTERVOLGA раз в месяц?
Подпишитесь на рассылку — спамить не будем