Авторизация в yaVapteke REST API¶
YaVapteke API поддерживает авторизацию на основе JWT токенов.
Для обращения к любому из ресурсов yaVapteke API требуется наличие JWT токена в заголовке Authorization HTTP запроса, с типом Bearer. При отсутствии токена API вернет 401 статус (Unauthorized), этот же статус вернется в случае, если время действия токена закончилось (токен выдается на определенное время). В обоих случаях нужно запросить новый токен.
Схема работы APIСхема работы API
Порядок выполнения авторизации на сервисах API 1. Получаем токен на сервере авторизации
2. Полученный токен (берется из поля access_token ответа авторизации) используется для запросов к API.
3. При получении от API статуса 401 (Unauthorized), т.е. по истечении срока годности токена, токен запрашивается повторно
Получение токена¶
Для выполнения запросов к API, необходимо получить JWT токен по адресу https://yavapteke.ru/YavaptekeAPI/connect/token
POST /connect/token
ОписаниеОписание
Получение авторизационного токена
Параметры запросаПараметры запросаПараметры этого запроса передаются в теле запроса, см. пример запроса
Имя |
Обяз. |
Описание |
client_id |
• |
Идентификатор клиента |
secret |
• |
Пароль клиента, полученный |
grant_type |
|
Тип авторизации. В данном случае всегда client_credentials |
Заголовки запросаЗаголовки запроса
Имя |
Описание |
Content-Type |
Должно иметь значение application/x-www-form-urlencoded |
Пример запросаПример запроса
HTTP
POST /connect/token HTTP/1.1
Host: yaVapteke.ru/YavaptekeAPI/
Content-Type: application/x-www-form-urlencoded
Cache-Control: no-cache
client_id=3f37b142-e371-461e-924c-a913ff878534&client_secret=Pas$w0Rd
C# (RestSharp)
var client = new RestClient(" https://yavapteke.ru/YavaptekeAPI/connect/token");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
request.AddParameter("client_id", " 3f37b142-e371-461e-924c-a913ff878534");
request.AddParameter("client_secret", "Pas$w0Rd");
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
CURL
curl --location --request POST 'https://yavapteke.ru/YavaptekeAPI/connect/token' --header 'Content-Type: application/x-www-form-urlencoded' --data-urlencode 'client_id= 3f37b142-e371-461e-924c-a913ff878534' --data-urlencode 'client_secret=Pas$w0Rd'
Успешный ответУспешный ответ
HTTP cтатус |
Значение |
200 |
ОК. Запрос к сервису авторизации прошел успешно, в теле ответа содержится JSON с информацией о выданном токене. |
Пример ответаПример ответа
{
"access_token": "08da627f-6773-4112-8355-47c94c7ac717",
"expires_in": 3600,
"token_type": "Bearer"
}
Неуспешный ответНеуспешный ответ
HTTP статус |
Значение |
400 |
Полученные службой данные содержат ошибки. Информация об ошибке возвращается в теле ответа. |
500 |
Ошибка сервиса. Если ошибка повторяется, сообщите, пожалуйста, разработчикам сервиса |