Источники данных поддерживают передачу транзакционных данных, в которых хранятся сведения о запросах и изменениях источника данных в определенный момент времени. С помощью идентификации и сохранения запроса пользователя возможна обработка ответа при разрыве соединения.
Совет. Используйте передачу транзакционных данных, если не настроено кэширование.
Каждой записи транзакции присваивается уникальный идентификатор запроса - ID транзакции. Уникальность сгенерированного мобильным клиентом ID транзакции обеспечивается привязкой пользователя API и устройства в проекте.
Для использования ID транзакции в запросах к источникам данных добавьте заголовок X-Transaction-ID, содержащий уникальный идентификатор запроса. Заголовок X-Transaction-ID должен соответствовать стандарту UUID.
Примечание. Заголовок X-Transaction-ID является необязательным. При разрыве соединения и выполнении запросов без указания параметра будет получен ответ с сообщением об ошибке.
Пример запроса к источнику данных с использованием заголовка X-Transaction-ID (перед выполнением запроса определите токен пользователя):
curl "<IP-адрес или DNS-имя сервера>/api/v1/rpc/<название ресурса источника данных>/" -X POST -v -H "Content-Type: application/json" -H "Authorization: Bearer <токен пользователя>" -H "X-Transaction-ID: <UUID>"
После выполнения запроса будут получены данные из источника данных и запрос будет добавлен в историю транзакций.
Вся информация о транзакциях: ресурс, пользователь, идентификатор мобильного устройства, время поступления запроса, статус обработки запроса, ответ на запрос, параметры запроса, хранится в истории транзакций. Для избежания постоянного роста базы данных мобильной платформы очистите историю транзакций вручную или установите расписание для удаления.
Алгоритм запросов с ID транзакции:
Мобильное приложение отправляет запрос к ресурсу источника данных.
Источник данных получает запрос и возвращает подтверждение успешного выполнения запроса серверу мобильной платформы.
Если соединение между сервером и мобильным устройством прерывается, то при повторном запросе мобильное приложение указывает ID транзакции прошлого запроса для избежания повторного выполнения запроса в источнике данных.
Сервер мобильной платформы возвращает сообщение об успешной обработке прошлого запроса и ответ на запрос.
Запросы к транзакциям приведены в разделе «Метод работы с транзакциями».
См. также: