Qt汽车套件部署服务器API参考
API参考
以下表格描述了请求、其参数以及相应的响应。
hello
检查您是否使用正确的平台和正确使用API与部署服务器通信。
参数 | 描述 |
---|---|
platform | 客户端运行的平台。此参数设置了您获得的软件包的架构。有关更多信息,请参阅《appstore/settings.py》文件中的settings.APPSTORE_PLATFORM 参数。 |
version | 您与服务器通信时使用的部署服务器HTTP API版本。有关更多信息,请参阅《appstore/settings.py》文件中的settings.APPSTORE_VERSION 。 |
require_tag(也可作为 tag 传递) | 一个可选参数,用于通过标签过滤包。接收以逗号分隔的标签列表;这些标签必须是数字字母。仅列出符合指定的任意一个标签的应用程序(且不在其冲突列表中的应用程序)。 |
architecture | 一个可选参数,用于通过架构过滤包。接收CPU架构。如果没有指定架构,则只列出显示所有架构的包。 |
返回一个包含以下字段和值的JSON对象。
JSON字段 | 值 | 描述 |
---|---|---|
status | ok | 成功 |
maintenance | 服务器正在维护模式且当前不可用。 | |
incompatible-platform | 您使用的平台不兼容。 | |
incompatible-version | 您使用的API版本不兼容。 | |
incompatible-architecture | 架构参数格式不正确,或服务器无法解析它。 | |
malformed-tag | 标签格式不正确,可能不是数字字母,或无法解析。 |
login
使用提供的用户名和密码登录到部署服务器。必须提供IMEI或唯一的硬件标识符,例如MAC地址。此调用是下载应用程序所必需的。
参数 | 描述 |
---|---|
username | 用户名。 |
password | 指定用户名的密码。 |
返回一个包含以下字段和值的JSON对象。
JSON字段 | 值 | 描述 |
---|---|---|
status | ok | 登录成功。 |
missing-credentials | 未提供用户名或密码。 | |
account-disabled | 在管理面板中已禁用帐户。 | |
authentication-failed | 用户名和/或密码可能不正确;或发生其他身份验证错误。 |
logout
从部署服务器登出当前登录用户。
返回一个包含以下字段和值的JSON对象。
JSON字段 | 值 | 描述 |
---|---|---|
status | ok | 用户已成功登出。 |
失败 | 用户未登录。 |
app/list
列出所有应用。可以通过使用 category_id
和 filter
参数对返回的列表进行筛选。
参数 | 描述 |
---|---|
category_id | 仅限制具有此类别ID的应用。 |
filter | 仅列出名称匹配此筛选条件的应用。 |
返回一个JSON对象数组的数组(不是一个对象本身!)。
JSON字段 | 描述 |
---|---|
id | 一个唯一的app ID,采用反向域名表示法。 |
name | 应用名称。 |
vendor | 应用的供应商名称;不是供应商ID。 |
category | 应用类别名称。 |
tags | 需要应用的标签的JSON数组。 |
conflict_tags | 与应用冲突的标签的JSON数组。 |
version | 应用的版本,作为字符串返回。如果没有版本号,则返回默认版本“0.0.0”。 |
architecture | 应用的架构,作为在应用的库组件中检测到的返回。 如果应用不是本地应用,则包含所有。否则,它形成如下:mips-little_endian-32-elf 这里是一个组合
|
briefDescription | 描述应用的简短文本,限于1行,约80-130个字符。 |
category_id | Numeric category ID that matches the app's category. |
purchaseId | 购买识别符,服务器上特定应用的自由形式标识符。用作 app/purchase API调用中ID的替代。这是一个自由形式的字符串,目前是一个UUID,但不应对此格式做出假设。 |
iconUrl | 此应用程序图标的URL |
app/icon
为给定应用程序ID返回一个图标。
参数 | 描述 |
---|---|
id | 应用ID。 |
architecture | 一个可选参数,用于通过架构过滤图标。覆盖会话中指定的架构。接收CPU架构。如果没有在会话或此参数中指定架构,则只列出显示所有架构的图标。 |
如果应用存在,返回一个PNG图像;否则返回HTTP 404错误。
app/description
为给定的app ID返回一个描述。
参数 | 描述 |
---|---|
id | app ID |
返回应用的描述文本,可以是HTML或纯文本。
app/purchase
返回一个仅供特定时间段内使用的下载请求应用的URL;可由设置进行配置。
注意:这是一个遗留的AppStore请求。更改此API的名称将需要在Neptune 3 UI中进行更改。
参数 | 描述 |
---|---|
device_id | 客户端硬件的唯一设备ID;目前未使用。 |
id | 应用ID。 |
purchaseId | 替代应用ID,用于选择具有标签和所有内容的特定应用(参见app/list API描述)。如果指定了ID和purchaseId,则ID优先。 |
返回一个JSON对象
JSON字段 | 值 | 描述 |
---|---|---|
status | ok | 成功 |
失败 | 发生错误,请检查错误字段以获取更多信息。 | |
error | 文本。 | 如果状态等于failed ,包含错误描述。 |
url | 一个URL。 | 从下载应用的URL。根据expiresIn 指定的值到期。 |
expiresIn | 一个整数值。 | 下载URL有效的秒数。 |
category/list
列出所有可用的类别。同时也返回 全部 元类别,用于保存所有可用的应用程序。
返回一个JSON对象数组的数组(不是一个对象本身!)。
JSON 字段 | 描述 |
---|---|
id | 唯一的类别 ID。 |
name | 类别名称。 |
category/icon
为给定的类别 ID 返回一个图标。
参数 | 描述 |
---|---|
id | 类别 ID。 |
返回 PNG 格式的图像或空白的 1x1 PNG 文件。
注意:当前采用该类别中第一个应用的图标(如果存在)。
upload
接受远程包上传请求。用户必须属于 工作人员 群组才能使用此 API。这也需要基本的身份验证或对 login
方法的先前调用。这是一个通过使用的参数进行 POST 请求的服务器。
参数 | 描述 |
---|---|
description | 包描述,长版本。可以是文本或 HTML。 |
short-description | 单行包描述。 |
category | 包放入的类别的类别名称。 |
vendor | 包的供应商名称。 |
package | 包本身。这是一个作为文件参数上传的文件。 |
返回 JSON 对象
参数 | 值 | 描述 |
---|---|---|
status | ok | 成功 |
无描述 | 缺失描述参数。 | |
无简短描述 | 缺失简短描述参数。 | |
无分类 | 缺失分类参数。 | |
无供应商 | 缺失供应商参数。 | |
包验证失败 | 包未通过格式或合理性验证。 | |
不存在的分类 | 指定的分类与传递的参数不匹配。 | |
不存在的供应商 | 指定的供应商与传递的参数不匹配。 | |
无包可上传 | 请求中没有 package 参数,或者它不是一个 POST 请求。 |
API 使用示例
部署服务器公开了一个 HTTP API。这些请求的参数需要使用 HTTP GET 或 POST 语法提供。数据以 JSON、PNG 或文本格式返回,具体取决于请求。
工作流程
- 向服务器发送
hello
请求以获取当前状态和检查您的平台是否与该服务器实例兼容http://<server>/hello?platform=AM&version=1
返回
{ "status": "ok" }
- 以密码
pass
登录为user
http://<server>/login?username=user&password=pass
返回
{ "status": "ok" }
- 列出所有应用程序
http://<server>/app/list
返回
[{ "category": "Entertainment", "name": "Nice App", "vendor": "Luxoft", "briefDescription": "Nice App is a really nice app.", "category_id": 4, "id": "com.luxoft.niceapp"}, .... ]
- 请求下载应用程序
http://<server>/app/purchase?device_id=12345&id=com.luxoft.niceapp
返回
{ "status": "ok", "url": "http://<server>/app/download/com.luxoft.niceapp.2.npkg", "expiresIn": 600 }
- 在步骤 4 中提供的
url
内部expiresIn
秒内下载应用程序。
©2020 The Qt Company Ltd. 本文档中包含的文档贡献者是它们各自的版权所有者。本文件中的文档是根据自由软件基金会发布的 GNU Free Documentation License 第 1.3 版 的条款许可的。Qt 和相应的标志是在芬兰和/或世界其他国家/地区的 The Qt Company Ltd. 的商标。所有其他商标均为各自所有者的财产。