Начало работы с REST
В этом разделе представлено практическое руководство по началу работы с универсальным REST API.
Предположим, что мы хотим получить в приложении информацию о заказах через REST API.
Для начала добавьте REST в свой проект как описано в разделе Установка и запустите приложение.
Разрешение пользовательского доступа через REST
Взаимодействие с приложением через REST API всегда происходит в контексте конкретного пользователя. Поэтому нам будет нужно предоставить пользователю возможность доступа к приложению через API.
Выбранному пользователю необходимо назначить предопределенную роль REST: minimal access
(с кодом rest-minimal
). Пользователь admin
уже обладает всеми необходимыми разрешениями благодаря роли system-full-access
.
Аутентификация для API
В следующем примере для взаимодействия с REST API мы используем инструмент командной строки curl
.
Перед загрузкой данных или отправкой данных в API необходимо выполнить логин или запрос Authentication request
. Используйте следующую команду cURL
для выполнения запроса:
curl -X POST http://localhost:8080/oauth/token \
--basic --user client:secret \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=password&username=admin&password=admin"
В Windows удалите символы \ и вводите команду одной строкой.
|
HTTP 200
означает успешный ответ, который содержит документ JSON с информацией о результате запроса аутентификации:
{
"access_token": "zmSIwB4_9he68yrNsHC5N1agktA",
"token_type": "bearer",
"refresh_token": "Tm3_v0T-eeYS6URZgoi4e_r-ub8",
"expires_in": 31535999,
"scope": "rest-api",
"OAuth2.SESSION_ID": "5C46CDF266E8C8C15372887830B74F59"
}
Атрибут access_token
— это токен, который можно использовать для дальнейших запросов в заголовке Authorization
. Он действует как временные учетные данные, которые предоставляют вам доступ к приложению от имени пользователя.
Запрос списка сущностей
С токеном доступа вы можете использовать операции (endpoints) REST API для загрузки списка пользователей. Замените <access_token>
значением, полученным на предыдущем шаге. Мы извлечем всех пользователей в приложении через Entities API:
curl -X GET http://localhost:8080/rest/entities/User \
-H "Authorization: Bearer <access_token>"
Ответ будет содержать всех пользователей, доступных в приложении:
[
{
"_entityName": "User",
"_instanceName": " [admin]",
"id": "60885987-1b61-4247-94c7-dff348347f93",
"version": 1,
"active": true,
"username": "admin"
}
]