Перейти к основному содержимому

API

Чистая логистика предоставляет доступ к данным в виде REST API, GraphQL API (POST /graphql) и в виде обмена данными через Kafka.

Методы REST и GraphQL вызываются с токеном авторизации (см. ниже). Каждый метод доступен только пользователям с определенными ролями, например ROLE_ADMIN, ROLE_LK_ADMIN, ROLE_API_READ_ONLY. Нужные роли указаны в описании методов.

Авторизация для REST-запросов​

POST authenticate

https://disp.t2.groupstp.ru/app/api/v1/authenticate

Для авторизации пользователя нужно:

  1. Создать POST-запрос для адреса выше

  2. Указать в HEADER :

    Content-Type: application/json

  3. Указать в BODY

{"username":"***","password":"***"}

В ответе от сервера придет токен авторизации пользователя: в теле ответа и в заголовке Authorization: Bearer ....

{"id_token":"eyJhbGciOiJIUzUxMiJ9..."}

Этот токен нужно сохранить и во всех последующих запросах к серверу указать его в заголовке Authorization:

Authorization: Bearer ваш_токен

Кроме того, сервер устанавливает cookie Refresh-Token. По ней можно получить новый токен без повторного ввода логина и пароля:

МетодАдресОписание
POST/api/v1/refresh-authenticationПродление авторизации. Нужна cookie Refresh-Token. Ответ такой же, как у authenticate: новый токен в теле и в заголовке Authorization, новая cookie Refresh-Token
POST/api/v1/logoutВыход. Нужна cookie Refresh-Token, сервер удаляет ее
Пример POST-запроса
POST /your-endpoint HTTP/1.1 (Указать конечный путь до метода, который хотите вызвать)
Host: your-api-host (Указать адресс сервера)
Content-Type: application/json (Указать тип)
Authorization: Bearer (Вставить ваш токен)

{
"key": "value"
}
Пример GET-запроса
GET /your-endpoint HTTP/1.1 (Указать конечный путь до метода, который хотите вызвать)
Host: your-api-host (Указать адресс сервера)
Authorization: Bearer (Вставить ваш_токен)

Методы для внешних систем (роль ROLE_API_READ_ONLY)​

Эти методы доступны только пользователю с ролью ROLE_API_READ_ONLY.

МетодАдресПараметрыОписание
GET/api/v1/volumes/removaldateFrom, dateTo - обязательные; timeZone - необязательныйОбъемы вывоза по КП за период. Ответ - массив {"areaCode": "...", "volume": 0.0}
GET/api/v1/volumes/removal-postgresdateFrom, dateTo - обязательные, формат yyyy-MM-ddTHH:mm:ssОбъемы вывоза по КП за период. Ответ - массив {"areaCode": "...", "volume": 0.0}
POST/api/v1/statistics/generateТело: {"name": "...", "parameters": {...}}Статистические данные в формате JSON. Не чаще 1 вызова в 60 секунд