RUS
  • RUS
  • ENG
  • TUR
  • UKR

Как работать с API

Последние изменения: 22.04.2025

Для работы с запросами необходимо авторизоваться на платформе публичных API Exely — Exely Connect.


Процесс авторизации

Авторизация происходит через OAuth2.0.

OAuth 2.0 – это стандарт авторизации, который позволяет приложениям получать доступ к данным.

Для работы с API в запросах необходимо передавать ключ доступа JSON Web Token (JWT).

JWT (JSON Web Token) — это специальный формат токена, который позволяет безопасно передавать данные между клиентом и сервером.

Получение JWT происходит через Client credentials flow, то есть авторизацию по секретному ключу доступа.

Для запроса ключа доступа необходимы параметры: Client ID и Client Secret.


Диаграмма взаимодействия

18837de650ab1ae0f2cbd7bd34a7227d.png


Exely. Auth Server: https://connect.hopenapi.com/auth/token

Exely. Content API: https://connect.hopenapi.com/api/content/


Access Token

Лимиты на авторизацию: 3 в секунду, 15 в минуту, 300 в час по одному IP-адресу.

Время жизни токена: 15 минут.

Endpoint авторизации: PROD — https://connect.hopenapi.com/auth/token

Пример Access Token:
eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJhWF9SYVkxak01LVJzcTYyb3ZUbjd2QVE3MFBraWZHdXIwZW5mdU1XUGFnIn0.eyJleHAiOjE3Mzc2MjY2NjIsImlhdCI6MTczNzYyNTc2MiwianRpIjoiYjcxZTRhODctODM1Ny00NzJlLTg5YTUtNjhjMjA1ZGYwYTkyIiwiaXNzIjoiaHR0cHM6Ly9jb25uZWN0LmhvcGVuYXBpLmNvbS9hdXRoL3JlYWxtcy9Db25uZWN0QXBpIiwiYXVkIjoiRXhlbHkuQ29ubmVjdEFwaSIsInN1YiI6ImY0MjRkOWY4LWYzMWYtNDgxMy1hMjY5LWYyMmY4ZTgzZjlkNyIsInR5cCI6IkJlYXJlciIsImF6cCI6ImRlbW9fcGFydG5lciIsInNjb3BlIjoiIiwiYXBpX2FjY2Vzc2VzIjpbImNvbnRlbnQiXX0.F4LxcnCZQ2HhdnXWfDa_lf0eqN3wq1Aq6DnOydnpElfa3QG5qkbU-ejdY6d4fpPJHQM57maxTkWs_rG6ZBi7qcAn8p1YdlXK0J7HT4e52MK3B-09ABO-DtzO4TxVN1z8iUr9mHoNSxIqSA2Nq9h0Z2cLqvvAJpSsaSsHBRCKC1WW6MMu7eSXNk4LKy6aq6h-hPXCzKG70WknukDp7Uiy7P0WVnVM4KMVD2WiS0tCOho4VVuVuLb68bSUqxgo9G5Zp3MiKyinixmgx1x9P5V_GVGDKBpNjuHde0FmlrnAMbrgF6azZUNmOBd19sp09MDnItQu5wDJFQObelTY1fkD9g

На сайте JWT.IO можно расшифровать Access Token.

Пример расшифрованного токена:

PAYLOAD:

{
"exp": 1737626662,
"iat": 1737625762,
"jti": "b71e4a87-8357-472e-89a5-68c205df0a92",
"iss": "https://connect.hopenapi.com/auth/realms/ConnectApi",
"aud": "Exely.ConnectApi",
"sub": "f424d9f8-f31f-4813-a269-f22f8e83f9d7",
"typ": "Bearer",
"azp": "demo_partner",
"scope": "",
"api_accesses": [
"content"
]
}

Обратите внимание. Refresh token не используется.


Best practices

1. Кешировать на стороне клиента Access Token и использовать его повторно в своих запросах.

2. Использовать библиотеки для OAuth2.0:


.net

https://identitymodel.readthedocs.io/en/latest/client/overview.html
Microsoft.Extensions.DependencyInjection


js

https://www.npmjs.com/package/oidc-client?activeTab=readme
https://github.com/IdentityModel/oidc-client-js/wiki


php

https://github.com/jumbojett/OpenID-Connect-PHP


curl

curl -L -X POST "https://connect.hopenapi.com/auth/token" -H "Content-Type: application/x-www-form-urlencoded" -d "grant_type=client_credentials" -d "client_id=XXXXXXXXXXXX" -d "client_secret=XXXXXXXXXXXX"


Как сделать запрос к API в Swagger

Swagger — это инструмент, который позволяет автоматически описывать API на основе его кода.

Спецификация и примеры доступны в Swagger.

3660e51240748df4674f6ec1ce343124.png


Чтобы сделать запрос:

1. Выберите нужное API из выпадающего списка.

b3340a96ee0ff19c79144c8a9bcf2cfa.png


2. Авторизуйтесь с помощью Client ID и Client Secret.

3. Если вы переключаетесь между API, заново авторизуйтесь.

Работа с API происходит с помощью отправки GET или POST запросов.

При некорректных запросах или проблемах в работе API, возвращается информация об ошибках.


Как авторизоваться в Swagger

1. Нажмите Authorize.

7ef85071eb469accbe73a999fe3ff771.png


2. Введите параметры Client ID и Client Secret, нажмите Authorize.

8c97aff4e149fb2b8c3605d2c11a0a48.png


3. Затем нажмите Close.


Как сделать запрос к API в Swagger

Описанная ниже последовательность действий применяется для выполнения запроса любого из методов в описании API.

1. Выберите API:

  • Content API — описание и фотографии средств размещений, категорий номеров, тарифов и услуг;

  • Read Reservation API — информация о бронированиях средств размещений;

2. Выберите запрос, который доступен в выбранном API. Например, «Получить информацию о средствах размещения»:

218cea77ad2e2bdde305b1324b866fd5.png


3. Нажмите Try it out:

1b4e17f620b07fd594c18ae57d90259a.png


4. Введите свои данные:

37f5de22986929ab3b2409f770058e35.png


5. Нажмите Execute:

40ef1599bd856d8971e665f054d559ef.png


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

Если запрос успешно выполнен, в ответ вы получите «Код 200» и детальное описание средств размещений.

25d656f89a621754f61d999c5db36e37.png


Если произошла ошибка, вы получите код ошибки и ее описание. Например:

  • «Код 400» — неверный запрос.

Может произойти, если вы отправили неверные данные.

17fda164c0061ab401327c9e3f4b71d4.png


В этом примере было превышено допустимое число элементов, которое было введено в поле count.

  • «Код 401» — ошибка авторизации.

Может произойти, если вы отправили неверные данные авторизации.

Аналогично выполняются и все остальные запросы к API.

Чтобы просмотреть в методе все входящие и исходящие параметры, их типы и описание, нажмите на Schema.

6aff9bd04fba64fa78c9f9089e4d3ebf.png


Помогла ли вам статья?