<aside> 💡 ВАЖНО! Вызов методов API допускается только в контексте соединения сервер-сервер. Любые вызовы API из клиентского кода (JS, мобильное приложение и т.д. не допускаются).

</aside>

Базовые определения

Параметр Значение
Транспорт HTTP
Сериализация JSON
Кодировка строк UTF8
Формат дат dd.MM.yyyy HH:mm:ss, если в качестве значения параметра ДАТА необходимо передать “пустую дату” то следует использовать значение “101.01.1900 00:00:00”
Значения типа BOOL Допускается передача значений как 0 или 1, так и true или false
Часовой пояс всех дат (кроме тех, где явно указано обратное) UTC
Все параметры в теле запроса
Авторизация <ключ АПИ интеграции>
ContentType и запроса и ответа "application/json"
Все запросы POST
Запросы отправлять на <serverurl>/handlers/IntegrationApi/JsonRpc.ashx

Основные принципы работы

Сервер API XCore принимает POST-запросы на адрес обработчика. Все параметры передаются в теле запроса в виде JSON-объекта. Внешний адрес сервера необходимо получить в настойках системы (см. ниже).

<aside> 💡 ВАЖНО! В результате запроса к серверу всегда возвращается HTTP статус 200ОК. В случае возникновения ошибки при выполнении запроса код и текст ошибки содержаться в возвращаемом JSON-объекте. Если сервер “отдает” любой статус отличный от 200OK, то необходимо обратиться в службу технической поддержки.

</aside>

Все запросы к серверу выполняются по ключу API Интеграции, который необходимо получить в конфигурации системы (см. ниже). Ключ интеграции передается как один из параметров в JSON-объекте запроса.

Все запросы к системе делятся на два вида, в зависимости от контекста их использования:

Запросы уровня пользователя ВСЕГДА требуют дополнительного параметра - токен пользователя (как его получить см. в описании методов аутентификации). По переданному токену система однозначно идентифицирует клиента и возвращает только “его” данные. Например, получить список договоров можно получить ТОЛЬКО в запросах уровня пользователя (т.е. получить только договоры конкретного клиента). Таким образом обеспечивается невозможность скачать “всю базу клиентов” или “всю базу договоров” и т.д.

Запросы уровня системы осуществляются БЕЗ использования токена пользователя и с помощью них доступно получение информации. явным образом НЕ связанной с конкретным клиентом. Например, получение списка значений справочников или полный список автомобилей (для XProkat) и т.д.

Для того чтобы начать работать с методами API уровня пользователя, необходимо предварительно вызвать метод GetClients и в качестве параметра передать номер клиента. В результате выполнения метода вы получите массив DTO-объектов, представляющих сущность “клиент” в системе. Одним из полей объекта (IntegrationId) и будет токен клиента. Далее этот ключ необходимо будет передать в любой из методов уровня пользователя.

Также все запросы можно разделить на “общие”, т.е. доступные и в Xrokat и в XLombard, так и на специфичные, доступные только в одной из систем. При этом в описании каждого метода API будут присутствовать маркеры, по которым можно будет определить является ли метод общим или специфичным. Например, для метода GetClients идентификация будет следующая:

<aside> 💡 Общий метод, контекст системы, V=0

</aside>

Формат запроса к API