Каталог решений - Интеграция 1С и CMS WordPress посредством Rest API сайта. Первый шаг

Интеграция 1С и CMS WordPress посредством Rest API сайта. Первый шаг

Интеграция 1С и CMS WordPress посредством Rest API сайта. Первый шаг

В наличии

Интеграция 1С и CMS WordPress посредством функционала Rest API. Используем только язык программирования 1С и штатный функционал Rest API предоставляемый CMS, без дополнительных библиотек и плагинов. Процедуры и функции 1С с комментариями внутри.

Категория:

Описание

Интеграция 1С и  CMS WordPress посредством Rest API сайта. Первый шаг.

Интеграция 1С и CMS WordPress посредством функционала Rest API. Используем только язык программирования 1С и штатный функционал Rest API предоставляемый CMS, без дополнительных библиотек и плагинов. Процедуры и функции 1С с комментариями внутри.

Преамбула.

Эта статья является логическим продолжением и дополнением этой моей статьи. А также полностью с ней взаимосвязанной, отсылки к ней будут периодически здесь появляться.

Рейтинг CMS.

Как и в предыдущей статье WordPress занимает лидирующие позиции по количеству установок и работающих сайтов в мире, и не только не сдает своих позиций, но и понемногу растет:

Рис. 1.1

А так как WordPress является платформой для электронной коммерции, соответственно магазин WooCommerce, так же занимает лидирующие позиции в другом мировом рейтинге:

Рис 1.2

Это конечно прекрасно, но помимо достоинств, описанных в этой статье, есть еще один немаловажный фактор, о котором мне хотелось бы сообщить. Это формат обмена данными между 1С и сайтом электронной коммерции.

JSON vs. XML

Почему JSON и XML? XML является стандартом де-факто в 1С. JSON, на мой взгляд, имеет значительно больше перспектив, проще, удобнее.

От настольных компьютеров до веб-и мобильных устройств, почти все компьютерные приложения, которые мы используем сегодня, полагаются на один из двух основных стандартов сообщений: JSON и XML. Сегодня JSON является наиболее широко используемым форматом, но он обогнал XML только за последние пять лет. Быстрый онлайн-поиск «JSON vs. XML» принесет бесчисленное количество статей и постов в блогах, сравнивающих эти два стандарта и составляющих постепенно расширяющуюся предвзятость, восхваляющую простоту JSON и критикующую многословие XML. Многие статьи настаивают на том, что JSON превосходит XML из-за его краткой семантики и дисконтирует XML как неэффективный и запутанный стандарт прошлого, и здесь мне тяжело не согласиться.

Почему JSON стал более популярным, чем XML

Я на деюсь все знают, что JSON-это родной формат данных в приложениях JavaScript. Написание приложений на JavaScript почти полностью требует использования JSON для обмена данными. Возможны и другие форматы, но они требуют больше усилий, чем в случае с JSON. По мере того как JavaScript набирал популярность для разработки приложений, JSON вплотную следовал за ним как простой в использовании и изначально интегрированный формат обмена данными.

История и эволюционный путь интернета сыграли значительную роль в популяризации JSON. Согласно Stack Overflow, теперь больше вопросов задается о JSON, чем о других форматах обмена данными.

Рис 2.1

Согласно Google Trends, похожая ситуация наблюдается при сравнении интереса поиска для JSON и XML.

Рис 2.2.

Основная разница между JSON и XML

JSON

XML

JSON-объект имеет тип

XML-данные не содержат типов

Типы JSON: строка, число, массив, логическое значение

Все данные XML должны быть строковыми

Данные легко доступны в виде объектов JSON.

Данные XML должны быть проанализированы.

JSON поддерживается большинством браузеров.

Кросс-браузерный анализ XML может быть сложным

JSON не имеет возможностей отображения.

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

JSON поддерживает только текстовые и числовые данные.

XML поддерживает различные типы данных, такие как число, текст, изображения, диаграммы, графики и т. Д. Он также предоставляет параметры для передачи структуры или формата данных с фактическими данными.

Получить значение легко

Получить значение сложно

Поддерживается многими инструментами Ajax

Не полностью поддерживается инструментарием Ajax

Полностью автоматизированный способ десериализации / сериализации JavaScript.

Разработчики должны написать код JavaScript для сериализации / десериализации из XML

Нативная поддержка объекта.

Объект должен быть выражен соглашениями — в основном пропущено использование атрибутов и элементов.

Он поддерживает только кодировку UTF-8.

Он поддерживает различные кодировки.

Это не поддерживает комментарии.

Поддерживает комментарии.

Файлы JSON легко читаются по сравнению с XML.

XML-документы относительно сложнее для чтения и интерпретации.

Он не обеспечивает никакой поддержки пространств имен.

Он поддерживает пространства имен.

Это менее защищено.

Это более безопасно, чем JSON.

 

JSON Code vs XML Code

Пример JSON

{
  “firstName”: “Jonathan”,
  “lastName”: “Freeman”,
  “loginCount”: 4,
  “isWriter”: true,
  “worksWith”: [“Spantree Technology Group”, “InfoWorld”],
  “pets”: [
    {
      “name”: “Lilly”,
      “type”: “Raccoon”
    }
  ]
}

Приведенная выше структура четко определяет некоторые атрибуты человека. Он включает в себя имя и фамилию, количество раз, когда человек вошел в систему, является ли этот человек писателем, список компаний, с которыми он работает, и список домашних животных этого человека (в данном случае только один). Структура, подобная приведенной выше, может быть передана с сервера в веб-браузер или мобильное приложение, которое затем выполнит некоторые действия, такие как отображение данных или сохранение их для последующего использования.

Пример XML

<?xml version="1.0"?>
<person>
  <first_name>Jonathan</first_name>
  <last_name>Freeman</last_name>
  <login_count>4</login_count>
  <is_writer>true</is_writer>
  <works_with_entities>
    <works_with>Spantree Technology Group</works_with>
    <works_with>InfoWorld</works_with>
  </works_with_entities>
  <pets>
    <pet>
      <name>Lilly</name>
      <type>Raccoon</type>
    </pet>
  </pets>
</person>

Помимо того, что XML является более подробным (в данном случае ровно в два раза более подробным), он также вносит некоторую двусмысленность при синтаксическом анализе в удобную для JavaScript структуру данных. Преобразование XML в объект JavaScript (да и в 1С будет не мало) может занять от десятков до сотен строк кода и в конечном счете требует настройки на основе конкретного анализируемого объекта. Преобразование JSON в объект JavaScript занимает одну строку кода (и в 1С три) и не требует каких-либо предварительных знаний о анализируемом объекте.

С точки зрения обычного человека выбор здесь очевиден. Ведь даже судя по размеру встроенной справки 1С по работе с XML и JSON можно сделать вывод, что с JSON работать проще.

Рис. 2.3

За последние 15 лет JSON стал повсеместным в интернете. Сегодня этот формат является наиболее предпочтительным практически для всех общедоступных веб-сервисов, а также часто используется для частных веб-сервисов.

JSON затмил XML как предпочтительный формат обмена данными для веб-приложений и веб-служб.

Возможно, многим покажется, что здесь избыточно рассказывается о преимуществах JSON. Безусловно, у JSON есть свои недостатки, у XML есть свои преимущества. Но я рассказываю об этом «со своей колокольни». Что касается WordPress, там естественно имеется поддержка XML. Но безусловные преимущества JSON над XML, такие как: простота написания кода, объем передаваемых данных, перспектива, однозначно предопределили мой выбор.

Думаю, что, почитав подробнее в интернете об JSON vs. XML, вы тоже сделаете свой выбор.

Но хватит про выбор, давайте начнем и сделаем что-нибудь.

Запрос данных из WordPress из 1С посредством REST API.

С момента написания прошлой статьи ничего лучше плагина Advanced Access Manager (ААМ) не появилось, поэтому продолжим с ним. Все подробности по настройке можно прочитать здесь.

Весь приводимый ниже код использовался в обработке написанной под управляемые формы. С таким же успехом его можно использовать в обычных формах (версия платформы 1С должна быть не ниже 8.3.6).

 Условно постоянные значения, используемые в обработке (константы).

1. СоединениеССайтом_JWTServer. Строка подключения к сайту (host) без https://

2. СоединениеССайтом_JWToken. Токен полученный от сайта

3. СоединениеССайтом_Таймаут. Таймаут (секунд) подключения к сайту

4. СоединениеССайтом_ЭтоHTTPS_Соединение. Флаг указывающий на HTTPS-соединение.

В свой конфигурации вам надо будет их создать.

Небольшая ремарка, HTTP-соединение тестировалось, работает как надо.

Используемые маршруты WordPress.

  1. /wp-json/aam/v2. Выдает полный перечень сервисов плагина авторизации.
  2. /wp-json/aam/v2/jwt/validate. Валидация (проверка валидности) имеющегося токена.
  3. /wp-json/aam/v2/jwt/refresh. Обновление токена.
  4. /wp-json/aam/v2/jwt/revoke. Отзыв токена.
  5. /wp-json/aam/v2/authenticate. Аутентикация пользователя на сайте посредством пары «логин : пароль».
  6. /wp-json/wp/v2/categories/. Запрос категорий постов сайта.
  7. /wp-json/wp/v2/media/. Запрос списка картинок сайта.
  8. /wp-json/wp/v2/posts/. Запрос списка постов сайта.
  9. /wp-json/wp/v2/pages/. Запрос списка страниц сайта

В контексте данной статьи п.п. 3, 4, 5 не используются, за ненадобность (но вы можете поэкспериментировать самостоятельно, «authenticate» работает точно). Остальные приведены справочно, для демонстрации работоспособности кода. См. видео в конце статьи.

Конечные точки WordPress.

  1. POST.
  2. GET.

Процедуры и функции используемые в модуле формы.

 

 

has been added to your cart:
Оформление заказа