15.07.2019 Вадим Хоменко 58328
Основные принципы взаимодействия с 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С:ERP Управление предприятием 2.0

Делопроизводство
• Учет и контроль исполнения поручений
Учет и хранение...

ООО ХДМ Рус
ООО ХДМ Рус

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

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

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

 ЗАО "Инвестгеосервис" -ДО
ЗАО «Инвестгеосервис»

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

Внедренное типовое решение:
1С:Документооборот КОРП

- Работа с файлами;
- Делопроизводство;
- Процессы движения документов; ...

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

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

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

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

ПЭК
ПЭК

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

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

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

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

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

Внедренное типовое решение:
1С:Управление небольшой фирмой 8 ПРОФ

- Взаиморасчеты с поставщиками
- Учет прихода ТМЦ
- Взаиморасчеты с поку...

ООО «Вистеон Автоприбор Электроникс»
ООО «Вистеон Автоприбор Электроникс»

Отрасль:

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

- Управленческий учет; - Расчет зарплаты; - Логистика адресного склада; - Учет ...

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

Отрасль:
Бухгалтерские услуги

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

- Интеграция продукта с базой данных оперативного учета Axapta;
- Доработка фу...

Компания IBS
Компания IBS

Отрасль:
Системный интегратор

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

- Интеграция систем – АСУП и «1С:Управление производственным предприятием»...

АО «Вертолетная сервисная компания»
АО «Вертолетная сервисная компания»

Отрасль:
МТО эксплуатации вертолетной техники

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

- Консультации по сложным вопросам налогового и бухгалтерского учета;
- Ра...

ООО "АСК ИНЖИНИРИНГ"
ООО "АСК ИНЖИНИРИНГ"

Отрасль:
Машиностроение, приборостроение

Внедренное типовое решение:
1С:Документооборот ПРОФ

Делопроизводство
Учет и хранение документов
Ведение номенклатуры дел
...

ООО "СЖД"
ООО "СЖД"

Отрасль:
Торговля, склад, логистика, транспорт

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

Расчет зарплаты
Подбор кадров
Кадровый учет
Анализ кадрового состава...

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

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

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

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