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登录为userhttp://<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. 的商标。所有其他商标均为各自所有者的财产。