Общее описание API Mediaserver
Справочник по API
API – набор функций, помогающий понять, каким способом возможно обратиться к программе, включает в себя:
Операцию, которую можно выполнить
Данные, которые поступают на вход
Данные, которые оказываются на выходе (контент данных или сообщение об ошибке)
API продуктов VSaaS организован на основе REST.
REST API отвечает почти за все взаимодействия между серверными и клиентскими приложениями (серверное приложение дает доступ к своим данным клиентскому приложению по определенному URL).
API продукта Mediaserver имеет предсказуемые URL-адреса, ориентированные на ресурсы, возвращает ответы в формате JSON, использует стандартные коды ответов HTTP, аутентификацию.
Все запросы должны иметь заголовок: Content-Type: application/json
Это необходимо для того, чтобы backend понимал, поддерживает ли клиент ответы в формате json. Если этого заголовка не будет, то ошибки будут возвращаться html страницей.
Аутентификация
Для выполнения запросов API необходима аутентификация запроса. Аутентификация выполняется через token (далее API Access Token), который необходимо получить специальным запросом к API только localhost (с консоли сервера, на котором установлен Медиасервер).
Пример такого запроса
curl -k --request POST 'https://127.0.0.1:8080/api/auth/token/api/ \
--header 'Content-Type: application/json' \
--data-raw '{
"client": "client-unique-id",
"duration": 3600
}'
client
- уникальный идентификатор клиента используемый для логирования и проверки доступаduration
- время жизни токена в секундах. Возможно указать значение0
в этом случае токен будет иметь неограниченное время жизни.
Компрометация или передача токена третьим лицам, может повлечь за собой потерю Ваших данных и нестабильную работу сервиса.
После успешного получения API Access Token, все последующие запросы должны выполняться с передачей этого токена либо через заголовок HTTP, либо как параметр URL запроса.
Пример
Authorization: k237RLwFGY1Ptidjj0haOvF75lxdxR7x7XZKKN97AqtJtuSqUdDIntEmPzjYZXxG
или
curl -k --request POST 'https://mediaserver:8080/api/auth/token/access/?token=k237RLwFGY1Ptidjj0haOvF75lxdxR7x7XZKKN97AqtJtuSqUdDIntEmPzjYZXxG' \
--header 'Content-Type: application/json' \
--data-raw '{
"uid": "stream-uid",
"user": "user-unique-id",
"duration": 3600
}'
Запросы на которых есть аутентификация, но не был предоставлен token или он неверный завершаться ошибкой со статусом 401.