<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>