Быстрый старт
- 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/v5/METHOD_NAME?PARAMETERS
Header запроса должен содержать JWT:
Authorization: Bearer {{JWT}}
Пример:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiI2ZmEzNjVhZTg5MTRiYzBkZjc3MTVmNjdiYjhiYzhiNiIsImV4cCI6MTU5NDIwMjk5OH0.OFnLFv0Ecl2E_U0CDMCndRO4XtXLu1Gu1DBiSjvry2o
| v4 (обязательно) | Версия API |
| METHOD_NAME (обязательно) | Название метода API, к которому Вы хотите обратиться. Список основных методов доступен на этой странице. |
| PARAMETERS (опционально) | Входные параметры соответствующего метода API, последовательность пар name=value, разделенных амперсандом. Список параметров указан на странице с описанием метода. |