15.07.2019 Вадим Хоменко 56681
Основные принципы взаимодействия с REST API (...

Содержание

1. REST архитектура — что это?

2. Подключение к серверу 1С

3. Формат данных json  

   

1. REST архитектура — что это?


Сегодня поговорим о связи баз данных 1С с RESTAPI.


Что же это такое, и какие основные принципы взаимодействия нужно знать? RESTAPI - это не более чем обычный веб интерфейс со своим набором команд. То есть мы можем взаимодействовать с ним посредством 1С http-запросов. Давайте посмотрим, как это происходит.


Главной особенностью архитектуры RESTAPI является то, что при каждом обращении сервер, принимающий запрос, думает, что принял это соединение впервые! То есть при каждом запросе передается уникальный ключ авторизации, который идентифицирует сессию. 


Есть несколько основных типов запросов архитектуры REST:
- GETзапрос (получает данные);
- PUTзапрос (передает данные);
- POSTзапрос (меняет данные);
Все эти типы используются в RESTAPI.


Сервер, получая запросы RESTAPI, определяет их тип и понимает, что будет происходить с переданными ему данными. Для того чтобы взаимодействовать с определенным API необходимо зайти на его страницу и изучить документацию. В ней обычно указывается, какие методы доступны для взаимодействия, какие данные и как принимает сервер, пример ответа на функции. 


2. Подключение к серверу 1С


На реальном примере это выглядит так: для начала мы создаем подключение к серверу 1С, используя параметры, хранимые, скажем, в константе (адрес сервера, ключ подключения).




Используя функцию добавления параметров к запросу, добавляем необходимые значения. Лично я всегда использую эту функцию для удобства формирования строки запроса. С ее помощью можно легко добавить большое количество разных параметров. Но строку с параметрами можно и вручную написать.





3. Формат данных json

 
Строка с параметрами в итоге выглядит вот так: &FactoryId=123&hashkey=0000
В строке запроса мы можем передать, например, hashkey и factoryId.
Передавая параметры на определенный сервер, мы в ответ получаем нужные данные (для get запроса) или подтверждение, что наши данные получены (когда мы, например, передаем информацию для записи на сервере). Обычно для передачи запроса/ответа в теле запроса используется формат данных json. В нашем случае так и есть.
Json – это формат текста. Мне очень напоминает xml формат онлайн. Он часто используется при взаимодействии с вебом и происходит от JavaScript, но при этом считается независимым от языка.
Пример формата данных json:
{

"id": "123",

"Name": "Sensors",

"table": {

"name": "Датчик движения",

"value": "154",

"date": "20190101"

},

"Numbers": [

"1234",

"5678"

]

}



Итак, получаем ответ от сервера:



Обрабатываем json, который содержится в теле ответа. Структура предполагаемых данных хранится, конечно же, в документации к api. Поэтому при чтении json мы точно знаем, к какому полю обратится.


Ответ сервера как массив данных (прочитанный json) мы передаем в функцию, которая записывает результат в базу данных 1С:Предприятие. В нашем примере структура данных 1С (метаданные) почти полностью совпадает по именам с названием формата данных json.

По имени метода определяем справочник, в который будет происходить загрузка. И по id, переданному из сервиса, по реквизиту пытаемся найти элемент справочника.




В итоге мы имеем связь, которую обеспечивает шина данных api сервера. На сервер мы передаем параметры подключения, которые идентифицируют сессию и параметры запроса, а в ответ получаем необходимые данные, которые обрабатываем в процессе синхронизации любым удобным для нас способом.




Полученные данные мы записываем в нужный объект данных. В нашем случае - «Справочник» или «Регистр сведений».


Таким образом, restapi – пример описанного набора команд на стороне архитектуры сервера с базой данных. Передавая имя метода и параметры, мы вызываем определенную функцию, которая может обработать переданные в параметрах данные (например, записать их в базу данных сервера) или вернуть нам запрошенные данные из своей базы. Вот так просто.


Специалист компании ООО «Кодерлайн» 

Вадим Хоменко.

Наши проекты

Московский филиал ООО «Авиакомпания «Икар»
Московский филиал ООО «Авиакомпания «Икар»

Отрасль:
Авиаперевозки

Внедренное типовое решение:
1С:Бухгалтерия КОРП

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

Автоматизация складских операций на базе «1С:Предприятие 8. WMS Логистика. Управление складом»
ОАО «Фрейт Линк»

Отрасль:
Логистика и грузоперевозки

Внедренное типовое решение:
1С:Управление холдингом

Реализовали разработку уникального модуля «Интернет-магазины» на базе прог...

ООО «ЛукБелОйл»
ООО «ЛукБелОйл»

Отрасль:
Нефтегазовая отрасль

Внедренное типовое решение:

- Обследовании бизнес-процессов «Документооборот», «Казначейство и Бюджети...

Фармацевтическое предприятие «Оболенское»
АО «Фармацевтическое предприятие «Оболенское»

Отрасль:
Фармацевтическая промышленность

Внедренное типовое решение:
1С:Управление производственным предприятием

- Адаптации блоков/подсистем планирования продаж, закупок и казначейства. ...

Автоматизация производственного планирования нефтесервисной компании на базе 1С:ЕРП 2.0
ЗАО «Инвестгеосервис»

Отрасль:
Нефтесервис

Внедренное типовое решение:
1С:ERP Управление предприятием 2.0

- Блок планирования проектов (процессы объемно-календарного планирования пр...

1с-РАРУС МСК
1с-РАРУС МСК

Отрасль:
Разработка компьютерного программного обеспечения

Внедренное типовое решение:
1С:Управление корпоративными финансами

- Финансово-бухгалтерский блок
- Казначейство ...

Внедрение «1С:Бухгалтерия 8 ПРОФ» в компании «Мостехника»
ООО «Мостехника»

Отрасль:
Торговля

Внедренное типовое решение:
1С:Бухгалтерия ПРОФ

Документооборот (ECM):
- Учет рабочего времени;
Управление персоналом и ка...

ООО «ПраксисКом»
ООО «ПраксисКом»

Отрасль:
Аутсорсинг бухгалтерских услуг

Внедренное типовое решение:
1С:Бухгалтерия ПРОФ

- Бухгалтерский учет:
Банк и касса
Завершение периода
Нематериальные ...

Автоматизация подсистемы учета взаиморасчетов с агентами и интернет-магазинами на базе «1С:Управление холдингом 8»
ОАО «Фрейт Линк»

Отрасль:
Логистика и грузоперевозки

Внедренное типовое решение:
1С:Управление холдингом

– Оформление заказов поставщикам;
– Управление отношениями с поставщика...

ООО «Лаборатория успеха»
ООО «Лаборатория успеха»

Отрасль:
Общественное и плановое питание, гостиничный бизнес, туризм

Внедренное типовое решение:
1С:Управление холдингом 8

Бухгалтерский учет;
Расчет зарплаты и кадровый учет;...

ПЭК
ПЭК

Отрасль:
Грузоперевозки

Внедренное типовое решение:
1С:Управление производственным предприятием

- Внедрение функционала управления НСИ;
- Рефакторинг;
- Оптимизация общег...

Московский филиал ООО «Авиакомпания «Икар»
Московский филиал ООО «Авиакомпания «Икар»

Отрасль:
Авиаперевозки

Внедренное типовое решение:
1С:Зарплата и управление персоналом

Управление персоналом и кадровый учет (HRM) Кадровый учет Расчет зарплаты Рег...

Наши соц. сети

Telegram-канал «Koderline 1С» Группа в Вконтакте «Кодерлайн КОРП» Rutube

Остались вопросы - обратитесь к нам!

Впишите свои Имя и Телефон, чтобы мы ответили на все интересующие Вас вопросы.
ФИО*
E-mail*
Телефон*
Сообщение