跳转到内容

矩海无人船系统提供了完整的 API 接口,支持 REST、WebSocket 和 Python SDK。

当前版本: v1

Base URL: http://localhost:8080/api/v1

所有 API 请求需要进行身份认证。

Terminal window
# 获取 Token
curl -X POST http://localhost:8080/api/v1/auth/login \
-H "Content-Type: application/json" \
-d '{"username": "admin", "password": "password"}'
# 响应
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"expires_in": 86400
}
# 使用 Token
curl -X GET http://localhost:8080/api/v1/devices \
-H "Authorization: Bearer <token>"
Terminal window
curl -X GET http://localhost:8080/api/v1/devices \
-H "X-API-Key: your-api-key"

管理 USV 设备连接和状态。

  • GET /devices - 获取设备列表
  • GET /devices/{id} - 获取设备详情
  • POST /devices - 添加设备
  • PUT /devices/{id} - 更新设备配置
  • DELETE /devices/{id} - 删除设备

控制 USV 运动和行为。

  • POST /control/move - 控制移动
  • POST /control/stop - 停止运动
  • POST /control/return - 返回起点
  • GET /control/status - 获取控制状态

创建和管理任务。

  • GET /missions - 获取任务列表
  • GET /missions/{id} - 获取任务详情
  • POST /missions - 创建任务
  • PUT /missions/{id} - 更新任务
  • DELETE /missions/{id} - 删除任务
  • POST /missions/{id}/start - 开始任务
  • POST /missions/{id}/pause - 暂停任务
  • POST /missions/{id}/stop - 停止任务

查询和导出数据。

  • GET /data/telemetry - 获取遥测数据
  • GET /data/sensors - 获取传感器数据
  • POST /data/export - 导出数据
  • GET /data/stream - WebSocket 实时数据流

系统配置和监控。

  • GET /system/info - 系统信息
  • GET /system/health - 健康检查
  • GET /system/logs - 系统日志
  • PUT /system/config - 更新配置
{
"success": true,
"data": {
...
},
"timestamp": "2024-01-15T10:30:00Z"
}
{
"success": false,
"error": {
"code": "DEVICE_NOT_FOUND",
"message": "Device with ID 'USV-001' not found",
"details": {}
},
"timestamp": "2024-01-15T10:30:00Z"
}
错误码HTTP状态码说明
UNAUTHORIZED401未授权
FORBIDDEN403禁止访问
NOT_FOUND404资源不存在
VALIDATION_ERROR400参数验证失败
DEVICE_NOT_CONNECTED503设备未连接
MISSION_IN_PROGRESS409任务正在进行
INTERNAL_ERROR500内部错误

默认速率限制:

  • 认证用户: 100 请求/分钟
  • 未认证: 20 请求/分钟

响应头:

X-RateLimit-Limit: 100
X-RateLimit-Remaining: 95
X-RateLimit-Reset: 1705315800

支持分页的端点使用以下参数:

Terminal window
GET /api/v1/missions?page=1&per_page=20&sort=created_at&order=desc

响应包含分页信息:

{
"success": true,
"data": [...],
"pagination": {
"page": 1,
"per_page": 20,
"total": 100,
"pages": 5
}
}
const ws = new WebSocket('ws://localhost:8081?token=<jwt_token>');
ws.onopen = () => {
console.log('Connected');
};
ws.onmessage = (event) => {
const message = JSON.parse(event.data);
console.log('Received:', message);
};
{
"type": "telemetry",
"device_id": "USV-2024-001",
"timestamp": "2024-01-15T10:30:00Z",
"data": {
"latitude": 31.2304,
"longitude": 121.4737,
"speed": 5.2,
"heading": 90,
"battery": 78
}
}
Terminal window
pip install jhusv-sdk
from jhusv import Client
# 创建客户端
client = Client(
host='localhost',
port=8080,
api_key='your-api-key'
)
# 获取设备列表
devices = client.devices.list()
# 获取设备状态
status = client.devices.get('USV-2024-001')
# 创建任务
mission = client.missions.create({
'name': 'water_survey',
'type': 'waypoint',
'waypoints': [...]
})
# 启动任务
client.missions.start(mission.id)
Terminal window
curl -X GET \
'http://localhost:8080/api/v1/data/telemetry?device=USV-2024-001&limit=1' \
-H 'Authorization: Bearer <token>'
Terminal window
curl -X POST \
'http://localhost:8080/api/v1/control/move' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"device_id": "USV-2024-001",
"latitude": 31.2354,
"longitude": 121.4787,
"speed": 5
}'
Terminal window
# 创建任务
curl -X POST \
'http://localhost:8080/api/v1/missions' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d @mission.json
# 启动任务
curl -X POST \
'http://localhost:8080/api/v1/missions/{id}/start' \
-H 'Authorization: Bearer <token>'