Быстрый старт
- 1. Api Id и Api Secret и их получение
- 2. Авторизация (получение токена сессии) при помощи JWT
- 3. Запросы к API
Примечание: Для удобства проверки API, можно воспользоваться программой Advanced REST client application, либо любым другим приложением для тестирования API
Api Id и Api Secret и их получение
Для использования API Archimed+ необходимы Api Id и Api Secret. Их можно получить при запросе в компанию Archimed+
Авторизация (получение токена сессии JWT)
Для того, что бы начать работу методами API вам необходимо авторизоваться на сервисе. Для авторизации на сервере необходмо
сгенерировать JWT - токен. Для генерации JWT можно воспользоваться сторонними библиотеками
(https://jwt.io), либо сгенерировать JWT самостоятельно.
Содержание JWT: header.payload.signature
Пример: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiI2ZmEzNjVhZTg5MTRiYzBkZjc3MTVmNjdiYjhiYzhiNiIsImV4cCI6MTU5NDIwMjk5OH0.OFnLFv0Ecl2E_U0CDMCndRO4XtXLu1Gu1DBiSjvry2o
header | Закодированная base64 строка json: {"alg": "HS256","typ": "JWT"} |
payload | Закодированная base64 строка json: {"iss": "{{Api Id}}","exp": 1594969022}, где iss - Api Id, exp - Unix время до которого токен действителен (рекомендованное время жизни токена 1 час). Также можно передать опциональный параметр user_id, ID пользователя в системе Архимед, от имени которого будут выполняться запросы. |
signature | Зашифрованные алгоритмом SHA256 и ключом Api Secret header и payload, соединенные через точку:
HMACSHA256( base64UrlEncode(header) + "." + base64UrlEncode(payload), {{Api Secret}} ) |
function getJWT($apiId, $secret){ $header = base64_encode('{"alg": "HS256","typ": "JWT"}'); $payload = base64_encode('{"iss":"'.$apiId.'","exp":'.(time()+3600).'}'); $sign = base64_encode(hash_hmac( 'sha256', $header.'.'.$payload, $secret, true )); return $header.'.'.$payload.'.'.$sign; }
Запросы к API
Чтобы обратиться к методу API Archimed+, Вам необходимо выполнить запрос такого вида:
https://newapi.archimed-soft.ru/api/v4/METHOD_NAME?PARAMETERSHeader запроса должен содержать JWT:
Authorization: Bearer {{JWT}}Пример:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiI2ZmEzNjVhZTg5MTRiYzBkZjc3MTVmNjdiYjhiYzhiNiIsImV4cCI6MTU5NDIwMjk5OH0.OFnLFv0Ecl2E_U0CDMCndRO4XtXLu1Gu1DBiSjvry2o
v4 (обязательно) | Версия API |
METHOD_NAME (обязательно) | Название метода API, к которому Вы хотите обратиться. Список основных методов доступен на этой странице. |
PARAMETERS (опционально) | Входные параметры соответствующего метода API, последовательность пар name=value, разделенных амперсандом. Список параметров указан на странице с описанием метода. |