Skip to main content

Общие принципы

Портал госпитализации имеет единый интерфейс загрузки данных. Для обращения к интерфейсу отправляется запрос вида:

#!php

/udata/data/uploadInterface/{$type}/{$sync}

Параметры:

  • $type - тип загружаемых данных [branch, beds, direction и т.д.]
  • $sync - режим загрузки данных [1 - синхронный, 0 - асинхронный]

Портал госпитализации поддерживает 2 режима загрузки данных - синхронный и асинхронный. Синхронный метод возвращает результат сразу после выполнения запроса на загрузку данных, асинхронный - после обработки данных сервером очередей.

Асинхронная загрузка

При асинхронной загрузке данных, в формат запроса для корневой ноды root добавляются дополнительные атрибуты:

  • key - уникальный идентификатор файла
  • ip - IP адрес сервера, на который надо отправить результат загрузки
  • port - порт

Пример запроса для асинхронной загрузки

#!xml

<?xml version="1.0" encoding="UTF-8"?>
<root key="3400" ip="127.0.0.1" port="30">
	...
</root>

Пример ответа при асинхронной загрузке

#!xml

<?xml version="1.0" encoding="utf-8"?>
<udata xmlns:xlink="http://www.w3.org/TR/xlink" module="data" method="uploadInterface" generation-time="0.098592">
    <response>
        <code>200</code>
        <data>
            <key>3400</key>
            <is_success>1</is_success>
            <id>...</id>
        </data>
    </response>
</udata>

Синхронная загрузка

При синхронной загрузке данных ответ возвращается сразу после обработки данных в ответ на запрос.

Пример запроса для синхронной загрузки

#!xml

<?xml version="1.0" encoding="UTF-8"?>
<root>
	...
</root>

Пример ответа при синхронной загрузке

#!xml

<?xml version="1.0" encoding="utf-8"?>
<udata xmlns:xlink="http://www.w3.org/TR/xlink" module="data" method="uploadInterface" generation-time="0.098592">
    <response>
        <code>200</code>
        <data>
            <is_success>1</is_success>
            <id>...</id>
        </data>
    </response>
</udata>

Какой режим выбрать?

Общие рекомендации сводятся к следующим пунктам:

  • Если загрузка данных критична и необходимо максимально быстрое получение ответа используйте синхронный режим.
  • Если загрузка данных не критична по скорости получения ответа - используйте асинхронный режим.