VRED Web API

简介

VRED 附带集成的 Web 服务器,它提供 Python API、Web API 和低延迟视频流式传输。Web API 是一个远程过程调用 API (RPC API),它与 Python API v2 在同一基础上构建,可以通过 JavaScript 访问。由于它支持相同的函数和参数,因此请使用 Python API v2 的文档。

与 Python API 相比,Web API 的优势在于,它更易于使用并集成到 Web 应用程序中。此外,Web API 还支持事件侦听器(Python 中的信号),以便向客户实时通知更改情况。

端点

Web API 端点为 {schema}://{host}:{port}/api/{module}/{procedure}

例如,下面是一个使用 TLS 连接到本地实例的 URI:

http://localhost:8888/api/vrAnnotationService/getAnnotations

JavaScript 客户端 API

VRED 附带了可轻松集成到网站或应用程序中的集成 JavaScript 客户端库。

客户端库位于 {schema}://{host}:{port}/api.js

例如:

http://localhost:8888/api.js

如果从 VRED Web 服务器之外的域加载客户端库,则可以更改基本 URL:

api.setBaseUrl(`${schema}://${host}:${port}`);

下面提供了有关如何使用客户端库的简单示例。VRED 将附带更多示例,这些示例位于 Examples 文件夹中。

import { api } from 'http://localhost:8888/api.js';

// Connect event listener (signal)
api.vrAnnotationService.annotationsAdded.connect(() => console.log('Annotations added'));

// Add a new annotation
api.vrAnnotationService.createAnnotation('Annotation1')
  .then(() => {
    api.vrAnnotationService.findAnnotation('Annotation1')
      .then(a => a.setText('Lorem ipsum'));
  })
  .catch(() => console.error('Add annotation failed'));

// Get all annotations
api.vrAnnotationService.getAnnotations()
  .then(annotations => annotations.forEach(a => console.log(a)))
  .catch(() => console.error('Get annotations failed'));

OpenAPI 规范

此外,VRED 还提供了 Web API 的 OpenAPI 规范,可与 Swagger UI 和其他有用的 API 工具配合使用。

该规范位于 {schema}://{host}:{port}/api.json

例如:

http://localhost:8888/api.json