Содержание:
1. Описание протокола передачи гипертекста (HTTP)
HTTP (протокол передачи гипертекста) – это прикладной сетевой протокол, который используется для того, чтобы получать гипертекстовые документы, а также организовывать взаимодействия и через сеть Интернет, и через отдельные веб-структуры.
Сервис HTTP даёт возможность системе 1С: Шина обрабатывать приходящие запросы формата HTTP, которые приходят в неё из сторонних систем.
Рассмотрим, как, в общем виде, будет отображаться интеграция. Для начала, сторонняя система должна направить для системы 1С: Шина сообщение, которое коррелируется по HTTP протоколу. Следующим шагом, необходимо для сервиса HTTP вызвать особый обработчик, который просмотрит само сообщение и направит его в источник программы. Общий вид того, как происходит интеграция по описанному алгоритму представлена на скриншоте со схемой ниже:
Интеграция по описанному алгоритму
2. Создание сервиса HTTP в 1С: Шина
Когда необходимо создать и настроить новый HTTP сервис, необходимо выполнить такой ряд действий:
1. Развернуть вкладку «Основной» и перейти на панель «Новый». После этого, нужно нажать на строку «Элемент проекта», после чего, выбрать «Http сервис», как демонстрируется на скриншотах ниже:
Элемент проекта
Выбрать «Http сервис»
2. Далее, необходимо выбрать наименование сервиса HTTP и кликнуть на «Ввод», как показано далее:
Выбрать наименование сервиса HTTP
3. Теперь, можно будет наблюдать, что в структуре проекта будет отображён наш новый сервис HTTP, как показано здесь:
Новый сервис HTTP
4. Далее, нам нужно открыть раздел «Свойства» и кликнуть по «Корневой URL», как в примере ниже:
Корневой URL
5. После этого, следует задать URL шаблон: переходим на панель «Шаблоны» и нажимаем на «Новый», где кликаем по «Шаблон URL HTTP Сервиса», как показано здесь:
Шаблон URL HTTP Сервиса
6. Выберем наименование нашего шаблона и кликаем по кнопке «Ввод». Новый шаблон будет располагаться внутри соответствующего раздела, как продемонстрировано в примере:
Выберем наименование нашего шаблона
Новый шаблон
7. Теперь, необходимо задать метод HTTP, это нужно, чтобы обращаться к шаблону HTTP: выбираем новый шаблон и кликаем «Новый», где избираем строку «Метод шаблона URL HTTP Сервиса», как можно увидеть на данном скриншоте:
Метод шаблона URL HTTP Сервиса
8. За отправку сообщений для системы 1С: Шина отвечает метод POST, поэтому, в нашем примере, так его и назовём, для простоты, после выбора имени, кликаем «Ввод», как на этом примере:
Метод POST
Замечание: Важно учитывать, что во время выполнения запроса POST относительно шаблона URL «messages», выполняется специальный метод, который относится к обработчику POST метода.
Теперь, относительно замечания, рассмотрим то, каким будет программный код, который отвечает за приём сообщения из заданного запроса и за передачу сообщения в узел «Программный Источник». Для этого, нужно следовать такому алгоритму:
1. Открываем раздел свойств «Метода шаблона URL HTTP Сервиса», кликаем на строку «Обработчик» и на знак увеличительного стекла:
Обработчик
2. Перед нами появится модуль сервиса HTTP, для которого автоматически, программно, будет задан метод, который будет иметь требуемую сигнатуру. При этом, система сама обозначит этот метод как тот, который будет обрабатывать событие. Относительно тела метода нужно прописать следующий код программы, как показано на скриншоте ниже:
Код программы
3. Далее, в разделе «Свойства» в сервисе HTTP, для строки «Контроль доступа», нужно задать юзеров, которые смогут обращаться к данному сервису, как можно увидеть на изображении:
Задать юзеров
4. Для отправки запроса в сервис HTTP, следует использовать следующий шаблон:
5. Обращение к сервису HTTP, который создавали, будет таким:
http://127.0.0.1:9090/applications/PrimerIntegratsiiSistem-dev/api/esb/messages
6. Программный код запроса POST для системы, которая прошла авторизацию, с требуемым сообщением внутри тела запроса будет таким, как показано далее:
curl -X POST
http://127.0.0.1:9090/applications/Primer IntegratsiiSistem-dev/api/esb/messages \
-H "authorization: Bearer БИЛET" \
-H "Content-Type: application/json" \
-d "{'Тема сообщения': 'Тело сообщения'}"
Специалист компании ООО "Кодерлайн"
Андрей Прыкин