RESTful API Reference
Platform API 是 NE503 的 HTTP 网关。本文按资源组织接口,帮助你先定位端点,再到 Swagger 查看具体请求体和响应 schema。
本文的路径默认省略 /api/v1 前缀:例如表中的 GET /system/info,实际地址是 GET https://<设备IP>/api/v1/system/info。登录 POST /api/login 不使用 /api/v1 前缀。
1. 请求约定
1.1 基础地址和认证
| 项目 | 值 |
|---|---|
| 基础地址 | https://<设备IP> |
| API 前缀 | /api/v1 |
| Swagger UI | /swagger/(以设备实际部署为准) |
| 协议 | HTTP + WebSocket |
| 常规响应 | JSON |
除公开接口外,请先登录,再把返回的访问令牌放入请求头:
curl -k -X POST https://<设备IP>/api/login \
-H 'Content-Type: application/json' \
-d '{"username":"<username>","password":"<password>"}'
curl -k https://<设备IP>/api/v1/system/info \
-H 'Authorization: Bearer <token>'
源代码注册的公开接口是:
| 方法 | 实际路径 | 用途 |
|---|---|---|
POST | /api/login | 登录 |
GET | /api/v1/auth/public-key | 登录前获取公钥 |
GET | /api/v1/system/health | 健康检查 |
GET | /api/v1/system/ota/status | OTA 状态轮询 |
GET | /api/v1/system/os-upgrade/status | OS 升级状态轮询 |
/api/v1/logout 也由服务端注册,但是否需要客户端显式调用取决于会话管理方式。其余 /api/v1 路由默认经过认证中间件。
1.2 请求和响应
- JSON 请求使用
Content-Type: application/json。 - 文件上传使用接口定义的
multipart/form-data字段。 - 设备重启、升级、格式化、删除模型、删除文件、停止进程等接口会改变设备状态;先在测试设备验证。
- 业务判断不能只看 HTTP 状态码,同时检查响应中的
code、message、data或 Swagger 定义的业务状态。 - 令牌、密码、API key 和设备地址不要提交到日志或文档仓库。
2. 按任务找接口
| 任务 | 资源组 | 先看哪些接口 |
|---|---|---|
| 设备纳管 | system、device-info、network | /system/info、/system/health、/device-info、/network/config |
| 模型准备 | ai | /ai/capabilities、/ai/models、/ai/models/upload |
| 应用安装运行 | apps、containers、images | /apps、/apps/{app_id}/start、/containers |
| 相机和码流 | media、streams、h264 | /media/config、/media/status、/streams、/h264/{stream_id} |
| 设备外设 | device | /device/status、/device/light、/device/lens/* |
| 实时事件 | events | /events/topics、/events/publish、/events/stream |
| 系统运维 | monitor、processes、logs、files | /monitor/*、/processes、/logs/*、/files/* |
3. 系统、模型和事件
3.1 系统、时间、OTA 和 OS 升级
| 方法 | 路径 |
|---|---|
GET | /system/info |
GET | /system/stats |
GET | /system/time |
POST | /system/time/set |
POST | /system/time/sync-from-client |
GET / PUT | /system/time/config |
PUT | /system/time/timezone |
GET | /system/time/timezones |
PUT | /system/time/ntp |
POST | /system/time/ntp/sync |
POST | /system/password |
POST | /system/restart |
GET | /system/ota/detect |
POST | /system/ota/parse |
POST | /system/ota/install |
POST | /system/ota/install-from-path |
GET | /system/ota/status(公开状态查询) |
POST | /system/os-upgrade/upload |
POST | /system/os-upgrade/validate |
POST | /system/os-upgrade/install |
GET | /system/os-upgrade/status(公开状态查询) |
POST | /system/os-upgrade/reboot |
POST | /system/os-upgrade/cancel |
DELETE | /system/os-upgrade/package |
升级和重启接口应按“上传/解析或校验 → 执行 → 轮询状态 → 必要时重连”的状态机使用。install-from-path 要求设备上的本地绝对路径,不是调用方电脑路径。
3.2 AI Runtime
| 方法 | 路径 |
|---|---|
GET | /ai/capabilities |
GET / POST | /ai/models |
POST | /ai/models/parse |
POST | /ai/models/upload |
POST | /ai/models/scan |
GET | /ai/models/{model_id} |
DELETE | /ai/models/{model_id} |
POST | /ai/models/{model_id}/load |
POST | /ai/models/{model_id}/unload |
GET | /ai/models/{model_id}/apps |
GET | /ai/stats |
模型文件上传、注册、加载和删除不是同一个动作。尤其是 DELETE /ai/models/{model_id},应先确认是否会删除设备上的模型文件以及是否仍有应用使用它,再执行。
3.3 Event Bus
| 方法 | 路径 | 用途 |
|---|---|---|
GET | /events/topics | 列出主题 |
POST | /events/publish | 发布事件 |
GET | /events/stream | WebSocket 实时事件流 |
事件的 Topic、payload、认证和 WebSocket 使用边界见 事件集成,这里不重复协议说明。