Початок роботи

У цьому розділі описано 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:

Останнє оновлення

Чи була ця сторінка корисною?