Перейти до основного вмісту

Довідник з REST API

Insight надає доступ до своїх функцій керування браузером через HTTP API. Ви можете використовувати його для автоматизації перевірок стану, імпорту медіафайлів, налаштування джерела потокового відео, пошуку користувачів, перевірки робочого простору та діагностики середовища виконання.

Запущена служба публікує дві кінцеві точки документації API:

  • GET /api/docs відкриває інтерактивний інтерфейс користувача Swagger.
  • GET /api/openapi.json повертає документ OpenAPI версії 3.1, який використовується для генерації клієнтського коду та інших інструментів.

Для стандартної локальної інсталяції відкрийте:

https://127.0.0.1:9900/api/docs

Insight зазвичай використовує локально згенерований сертифікат для розробки. Клієнтським програмам, що працюють у командному рядку, може знадобитися довіряти цьому сертифікату або використовувати -k для локальної діагностики:

curl -k https://127.0.0.1:9900/api/health
curl -k https://127.0.0.1:9900/api/openapi.json -o neat-insight-openapi.json

Типовий сценарій автоматизації.

Завантажте файл, призначте його для відтворення у відповідному слоті та запустіть відтворення:

curl -k -F "file=@person_clip.mp4" \
https://<INSIGHT_HOST>:9900/api/upload/media

curl -k -H "Content-Type: application/json" \
-d '{"index":1,"file":"person_clip.mp4"}' \
https://<INSIGHT_HOST>:9900/api/mediasrc/assign

curl -k -H "Content-Type: application/json" \
-d '{"index":1}' \
https://<INSIGHT_HOST>:9900/api/mediasrc/start

Перед зміною завдань або стану відтворення, перегляньте /api/mediasrc. За можливості, зупиніть активні джерела, перш ніж видаляти їхні медіафайли.

Правила обробки та передачі даних у режимі потокового відтворення.

  • Більшість кінцевих точок повертають дані у форматі JSON. У разі виникнення помилок зазвичай використовується {"error": "message"} разом із кодом помилки HTTP.
  • Завантаження та імпорт повертають потокові дані про перебіг виконання у форматі text/plain, а не один об’єкт JSON.
  • /api/neat-metrics — це потік подій, що передається сервером.
  • Функції попереднього перегляду та отримання вихідних даних MJPEG повертають багатокомпонентні потоки зображень.
  • Кінцеві точки для отримання медіафайлів і файлів у робочому просторі повертають запитуваний двійковий вміст.

Інтерфейс користувача Swagger використовує той самий хост, що й Insight, тому його запити «Спробуйте» спрямовані на поточну інсталяцію. Такі операції, як видалення, скидання, запуск і зупинка, миттєво змінюють стан служби.

Групи API

Документ OpenAPI групує операції за призначенням:

  • Сервіс і система — інформація про стан, навколишнє середовище, деталі збірки, показники, журнали та додаткові інструменти.
  • Діагностика — обробка даних RTP, передавання даних через WebRTC та показники, що надсилаються сервером.
  • Медіатека та імпорт — перегляд, YouTube, завантаження, видалення, перевірка, попередній перегляд і завантаження файлів.
  • Джерела медіа — призначення та керування відтворенням через RTSP/HTTP.
  • Переглядач — URL-адреса переглядача, до якої можна отримати доступ через браузер, і налаштована пропускна здатність каналу.
  • Робочий простір — переглядайте, здійснюйте пошук, перевіряйте та попередньо переглядайте файли робочого простору та елементи архіву MPK.
  • DevKit shell — знайдіть і запустіть розміщений на сервері інтерфейс командного рядка після його налаштування.

Необроблений файл OpenAPI також зберігається в репозиторії Insight за адресою neat_insight/openapi.json. Тести порівнюють його операції з зареєстрованими маршрутами /api у Flask, тому нові кінцеві точки не можна додавати непомітно без оновлення довідкової інформації.