Начало работы

В этом разделе описан Web API платформы, реализованный в виде пакета данных REST-API для обмена в формате json.

Общие положения

  • Формат передачи данных Web API реализован в виде пакета данных REST-API для обмена в формате json.
  • Порядок аутентификации Аутентификация построена на динамически обновляемом токене, который гарантирует безопасность получаемых данных и исключает утечку токена.
  • Формат переменных, содержащих дату и время Web API возвращает данные типа «дата и время» в кодировке UNIX time или POSIX time в формате UTC: 1613376963. При переводе Unix time в читаемую дату необходимо указывать часовой пояс.
  • Постраничная выдача (pagination) В Web API реализована постраничная выдача для загрузки данных по страницам. Передаётся параметром: page="page number" (page=1). Количество возвращаемых в запросе записей можно задать параметром per_page, но не более 1000 записей.

Базовый URL

Во всех примерах на этих страницах используется следующий базовый URL:

bash
https://api.vadsro.eu/api/v1

Аутентификация

Аутентификация построена на динамически обновляемом токене. На практике это выглядит так:

  • Первичная аутентификация выполняется по адресу электронной почты и паролю, существующим в системе; в ответ приходят динамический токен и связанные с ним атрибуты.
  • Формирование целевого запроса на получение данных, при котором токен, полученный на предыдущем шаге, добавляется в заголовки HTTP-запроса.
  • Отправка запроса на сервер. Если запрос сформирован верно, сервер возвращает данные в теле ответа и новый токен в заголовках ответа, а старый токен становится недействительным. С новым токеном можно повторить предыдущий шаг — и так далее.
  • По завершении работы последний токен можно сделать недействительным до истечения срока его действия (SignOut).

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

bash
https://api.vadsro.eu/api/v1/auth/sign_in

Пример запроса в формате Curl:

bash
curl -i --header "Content-Type: application/json" \
     --request POST \
     --data '{"email":"api-user@example.com","password":"Str0ngPas$"}'\
     https://api.vadsro.eu/api/v1/auth/sign_in

В ответ мы получим следующее сообщение:

В этом ответе нас интересуют следующие заголовки:

ЗаголовокОписание
access_tokenЗначение этого заголовка используется как пароль при каждом запросе. Значение меняется с каждым запросом.
clientЭтот заголовок уникален для текущего соединения. Позволяет одновременно вести несколько активных сессий.
expiryВремя, когда истечёт срок действия этого токена. По умолчанию — 2 недели с момента получения. Либо SignOut для досрочного прекращения его действия. Для следующего запроса не требуется.
uidУникальное значение, идентифицирующее пользователя. В нашем случае — адрес электронной почты.
token-typeТип используемого токена.

Пример запроса с токеном из предыдущего ответа:

bash
curl -i --header "access-token: EXAMPLE-ACCESS-TOKEN-1" \
 --header "token-type: Bearer" \
 --header "client: EXAMPLE-CLIENT-ID" \
 --header "uid: api-user@example.com" \
 --request GET \
 --header "Content-Type: application/json" \
 --data '{"page":"2"}' \
 https://api.vadsro.eu/api/v1/stations

В ответ мы получим следующее сообщение:

Чтобы завершить работу, можно воспользоваться процедурой SignOut либо сохранить нужные заголовки из последнего запроса и, если срок жизни токена не истёк, использовать их в следующий раз.

Завершение сессии:

Дальнейшие шаги

Теперь, когда аутентификация освоена, изучите основные ресурсы API:

Последнее обновление

Эта страница была полезной?