Быстрый старт

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