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
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'));
此外,VRED 还提供了 Web API 的 OpenAPI 规范,可与 Swagger UI 和其他有用的 API 工具配合使用。
该规范位于 {schema}://{host}:{port}/api.json
。
例如:
http://localhost:8888/api.json