Общий принцип обмена данными БИТ Аппетита с внешним сервером столовой

Материал из Wiki
Перейти к: навигация, поиск

В данной схеме интеграции БИТ Аппетит выступает в качестве клиента, который инициирует обмен данными по средствам HTTP запросов к внешнему серверу столовой. Таким образом на стороне сервера должна быть реализована обработка запросов, по которым БИТ Аппетит периодически обращается к нему.

Формат HTTP запросов

Запросы, которые осуществляет БИТ Аппетит, представляют собой GET/POST запросы следующего вида:
http(s)://{host}:{port}/{page_prefix}{page}{page_suffix}?{parameter1}={value1}&{parameter2}={value2} ... {parameterN}={valueN}

Где параметры имеют следующие значения

  • host - сетевой адрес
  • port - порт tcp/ip порт соединения (80 по умолчанию)
  • page_prefix - путь к странице
  • page - наименование страницы (метод API)
  • page_suffix - суффикс страницы (например расширение .php или .html)
  • parameterN - имя параметра
  • valueN - значение параметра.

Для передачи параметров содержащих XML структуру предварительно используется кодирование строки в BASE64.

Общий вид ответов

Взаимодействие сервера БИТ Аппетита(клиент) с внешним сервером происходит в виде серии GET/POST запросов. Каждый метод для работы с API определяется URL (страницей на сервере), параметрами (соответствуют параметрам GET/POST) и ответом. Ответ представляет собой текст, содержащий данные в формате XML.

Общий вид ответа в случае успеха:

<?xml version="1.0" encoding="UTF-8"?>
<response>
	<result>ok</result>
        ...Данные...
</response>

В случае ошибки на сервере:

<?xml version="1.0" encoding="UTF-8"?>
<response>
	<result>error</result>
	<description>{Error description}</description>
	<error_code>{Error num}</error_code> 
</response>