Autoxing REST API Book
  • English
  • zh-CN
GitHub
  • English
  • zh-CN
GitHub
  • 入门指南

    • 入门指南
    • 开始移动
    • WebSocket 入门指南
    • Robot Admin (单机版)
  • 参考手册

    • REST API 设计原则
    • 地图 (Map) API
    • 移动 (Move) API
    • 当前地图与位姿 API
    • 叠加层 (Overlays)
    • 建图 (Mapping) API
    • 服务 API (Service API)
    • 转发 ROS 服务 API (Forwarded ROS Services API)
    • 物联网 (IoT) 设备
    • 设备信息 API
    • 机器人参数 (Robot Parameters) API
    • 系统设置 (System Settings)
    • 应用商店 API
    • 主机名 (Hostname) API
    • Lidar 陆标 (Landmarks)
    • WebSocket 参考 (WebSocket Reference)
    • 子图 (Submaps)
  • 其他

    • 弃用说明
    • 更新日志

应用商店 API

自 2.5.0 版本起可用

列出软件包

软件包列表包含所有可用软件包及其当前的更新状态。

curl -X GET http://192.168.25.25:8090/app_store/packages

响应

[
  {
    "name": "ax",
    "latest_version": "2.4.1-pi64",
    "current_version": "2.4.1-pi64",
    "status": "up_to_date"
  },
  {
    "name": "iot",
    "latest_version": "1.0.5",
    "current_version": "1.0.4",
    "status": "downloading",
    "download_task_id": 3,
    "optional": false
  },
  {
    "name": "package_manager",
    "latest_version": "0.3.2",
    "current_version": "0.3.0",
    "status": "installing",
    "install_task_id": 4,
    "optional": false
  }
]
type ListPackageResponse = Package[];

type PackageStatus =
  | "not_installed" // 显示“获取”按钮。
  | "upgradable" // 显示“下载”按钮。
  | "up_to_date"
  | "download_queueing"
  | "downloading"
  | "downloaded" // 显示“安装”按钮。
  | "download_failed" // 显示“重试”按钮;调用下载 API。
  | "install_queueing"
  | "installing"
  | "install_failed" // 显示“重试”按钮;调用安装 API。
  | "uninstall_queueing"
  | "uninstalling"
  | "uninstall_failed";

interface Package {
  name: string;
  latest_version: string;
  current_version: string;
  status: PackageStatus;

  // 下载相关 (可选)
  downloaded_versions?: string[];
  downloading_version?: string;
  downloading_progress?: number; // 0.0 - 1.0
  download_task_id?: number;

  // 安装相关 (可选)
  installing_version?: string;
  installing_progress?: number; // 0.0 - 1.0
  install_task_id?: number;
  install_failed_reason?: string;

  // 卸载相关 (可选)
  uninstall_task_id?: number;

  optional?: boolean;
}

刷新应用商店

刷新应用商店会检查软件包索引是否有新软件包和可用更新。 软件包索引将异步更新;因此,客户端应定期轮询软件包列表以查看更改。

curl -X POST http://192.168.25.25:8090/app_store/services/refresh_store

下载软件包

软件包必须先下载才能安装。

curl -X POST \
  -H "Content-Type: application/json" \
  -d '{"packages": ["ax", "py_axbot"]}' \
  http://192.168.25.25:8090/app_store/services/download_packages

响应

如果请求失败 (状态码 400):

{
  "iot": "installed version(master) is already up to date",
  "some_random_package": "invalid module some_random_package, skip..."
}

如果请求成功 (状态码 201):

{ "py_axbot": { "task_id": 16, "version": "1.1.6-opi64" } }

安装软件包

curl -X POST \
  -H "Content-Type: application/json" \
  -d '{"packages": ["ax", "py_axbot"]}' \
  http://192.168.25.25:8090/app_store/services/install_packages

响应

如果请求失败 (状态码 400):

{
  "ax": {
    "error": "installed version(master-pi64) is higher than downloaded version(2.4.1-pi64), skip..."
  },
  "iot": { "error": "installed version(master) is higher than downloaded version(1.0.5), skip..." }
}

如果请求成功 (状态码 201):

{ "follow": { "task_id": 19, "version": "1.1.6-opi64" } }

从本地文件安装软件包

curl -X POST \
  -H "Content-Type: application/json" \
  -d '{"filename": "/tmp/ax.2.6.4.pi64.tar.gz"}' \
  http://192.168.25.25:8090/app_store/services/install_local_file

响应

{
  "module_name": "ax",
  "version": "2.6.4"
}

卸载软件包

卸载之前安装的软件包。

curl -X POST \
  -H "Content-Type: application/json" \
  -d '{"packages": ["follow"]}' \
  http://192.168.25.25:8090/app_store/services/uninstall_packages

响应

{
  "follow": {
    "task_id": 7,
    "version": "2.2.0-opi64"
  }
}

查看下载和安装任务

下载或安装软件包会创建关联的“下载”或“安装”任务。 您可以使用以下端点查看这些任务的日志:

# 查看下载任务
curl http://192.168.25.25:8090/app_store/jobs/download/tasks
# 查看安装任务
curl http://192.168.25.25:8090/app_store/jobs/install/tasks

响应

[
  {
    "id": 4,
    "status": "succeeded",
    "module": "iot",
    "version": "1.0.5",
    "create_time": "2023-05-04 17:21:36",
    "start_time": "2023-05-04 17:21:47",
    "end_time": "2023-05-04 17:21:50",
    "url": "http://192.168.25.25:8090/app_store/jobs/download/tasks/4/log"
  },
  {
    "id": 3,
    "status": "succeeded",
    "module": "ax",
    "version": "2.4.1-pi64",
    "create_time": "2023-05-04 17:21:36",
    "start_time": "2023-05-04 17:21:36",
    "end_time": "2023-05-04 17:21:47",
    "url": "http://192.168.25.25:8090/app_store/jobs/download/tasks/3/log"
  }
]

显示下载或安装任务详情 (日志)

您可以请求特定任务的日志。

curl "http://192.168.25.25:8090/app_store/jobs/download/tasks/4/log"

请注意,如果任务仍在进行中,日志将是不完整的。

通过使用查询参数,可以渐进地下载日志,这非常适合实时显示。

curl http://192.168.25.25:8090/app_store/jobs/download/tasks/4/log?start=0&end=1024

可选查询参数:

  • start (数字):起始字符索引 (含)。
  • end (数字):结束字符索引 (不含)。

响应

  • 响应头:

    • Content-Type: text/plain; charset=utf-8
    • X-MORE-DATA: "true"/"false" (指示是否有更多日志数据可用。)
    • X-TEXT-SIZE: 数字 (日志的总字符大小。)
id: 5
create time: 2024-01-03 18:46:47
install task package_manager(0.4.4) added
start time: 2024-01-03 18:46:47
install task package_manager(0.4.4) begin
=== installing package_manager:0.4.4
=== checking checksum
=== extract
...

刷新固件库

应用商店还支持管理固件包。此端点从远程仓库检查可用的固件更新。

curl -X POST http://192.168.25.25:8090/app_store/services/refresh_store

响应

{ "status": 200 }

固件状态

获取固件包的状态。响应格式与普通软件包状态相同。

curl http://192.168.25.25:8090/app_store/firmware/packages

响应

[
  {
    "name": "bottom-sensor",
    "latest_version": "1.4.3",
    "current_version": "1.3.1",
    "status": "upgradable"
  }
]

固件安装

与标准软件包不同,固件包不需要预先下载;它们会自动在单个步骤中完成下载和安装。

curl -X POST \
  -H "Content-Type: application/json" \
  -d '{"packages": ["bottom-sensor"]}' \
  http://192.168.25.25:8090/app_store/firmware/install_packages

响应

{ "bottom-sensor": { "task_id": 12, "version": "1.5.4" } }
Edit this page
最后更新: 2026/6/17 13:24
Contributors: FengZhaolin
Prev
系统设置 (System Settings)
Next
主机名 (Hostname) API