软件部署服务
April 7, 2019 · View on GitHub
向 Block Lang 平台注册 Installer 信息
将 BlockLang Installer 与 https://blocklang.com 中的一个项目绑定, 即交由 BlockLang Installer 来自动管理项目的部署。
POST /installers
在注册时,需要登记服务器信息。
Parameters
| Name | Type | Description |
|---|---|---|
registrationToken | string | Required. Block Lang 平台为每个项目生成唯一的注册 token。 |
ip | string | 服务器的 IP 地址。 |
port | int | 服务器上运行响应 Block Lang 服务的端口(未实现)。 |
appRunPort | int | Spring Boot jar 在服务器上的运行端口。 |
osType | string | 服务器操作系统的具体类型,如 Windows、Ubuntu。 |
osVersion | string | 服务器操作系统版本号。 |
targetOs | string | 服务器操作系统类型,如 Windows、Linux、Macos、Solaris。 |
arch | string | CPU 架构。 |
serverToken | string | Required. 用于唯一标识服务器,使用服务器的 MAC 地址。 |
说明:有了更具体的 osType,为什么还要添加 target_os?这样做是为了减少转换,直接根据 target_os 获取 APP 发行版文件。
Response
输入参数校验
Status: 422 Unprocessable Entity
只有以下校验规则通过后,才能开始注册:
- 所有输入参数的值不能为空;
- 根据注册 token 没有获取到 APP 基本信息
- APP 的发行版基本信息不存在
- APP 发行版文件信息不存在
- JDK 发行版信息不存在
- JDK 的基本信息不存在
- JDK 的发行版文件信息不存在
注册成功
Status: 201 CREATED
| Name | Type | Description |
|---|---|---|
installerToken | string | Block Lang 平台为每个 installer 生成的 token。 |
appName | string | 要部署的 Spring Boot jar 的完整名称,由 Block Lang 平台中的用户名和项目名组成,格式为 @userName/projectName。 |
appVersion | string | 要部署的 Spring Boot jar 的版本号。 |
appFileName | string | 要部署的 Spring Boot jar 的完整文件名,与发布中心的名字保持一致。 |
appRunPort | int | Spring Boot jar 在服务器上的运行端口。 |
jdkName | string | JDK 在 Block Lang 平台登记的名称。 |
jdkVersion | string | JDK 的完整版本号。 |
jdkFileName | string | JDK 的完整文件名,在服务器上 JDK 以此命名。 |
向 Block Lang 平台获取软件最新信息
更新服务器信息并获取最新版本软件信息。
注意,因为在 installer_config.toml 中只存储了 installer_token,并没有存储 registration_token,所以获取更新信息时使用的是 installer_token。
PUT /installers
Parameters
| Name | Type | Description |
|---|---|---|
installerToken | string | Required. Block Lang 平台为每个 installer 生成的 token。 |
ip | string | 服务器的 IP 地址。 |
port | int | 服务器上运行响应 Block Lang 服务的端口。 |
osType | string | 服务器操作系统类型,如 Windows、Ubuntu。 |
osVersion | string | 服务器操作系统版本号。 |
targetOs | string | 服务器操作系统类型,如 Windows、Linux、Macos、Solaris。 |
arch | string | CPU 架构。 |
serverToken | string | Required. 用于唯一标识服务器,使用服务器的 MAC 地址。 |
Response
输入参数校验
Status: 422 Unprocessable Entity
只有以下校验规则通过后,才能开始注册:
- 所有输入参数的值不能为空;
- 根据安装器 token 没有获取到安装器基本信息
- 确认 Block Lang 平台的 Server Token 与参数中的 Server Token 一致
- APP 的发行版基本信息不存在
- APP 基本信息不存在
- APP 最新发行版信息不存在
- APP 最新发行版文件信息不存在
- JDK 发行版信息不存在
- JDK 的基本信息不存在
- JDK 的发行版文件信息不存在
获取升级信息成功
Status: 200 OK
| Name | Type | Description |
|---|---|---|
installerToken | string | Block Lang 平台为每个 installer 生成的 token。 |
appName | string | 要部署的 Spring Boot jar 的完整名称,由 Block Lang 平台中的用户名和项目名组成,格式为 @userName/projectName。 |
appVersion | string | 要部署的 Spring Boot jar 的版本号。 |
appFileName | string | 要部署的 Spring Boot jar 的完整文件名,与发布中心的名字保持一致。 |
appRunPort | int | Spring Boot jar 在服务器上的运行端口。 |
jdkName | string | JDK 在 Block Lang 平台登记的名称。 |
jdkVersion | string | JDK 的完整版本号。 |
jdkFileName | string | JDK 的完整文件名,在服务器上 JDK 以此命名。 |
向 Block Lang 平台注销 Installer 信息
DELETE /installers/{installerToken}
Parameters
| Name | Type | Description |
|---|---|---|
installerToken | string | Required. Block Lang 平台为每个 installer 生成的 token。 |
Response
要注销的安装器不存在
Status: 404 NOT FOUND
注销成功
Status: 204 NO CONTENT
installer_config.toml 结构
| Name | Description |
|---|---|
url | Block Lang 软件发布中心的 URL,如 https://blocklang.com。 |
installer_token | 为每一个 installer 生成的唯一 token。 |
server_token | 用于唯一标识服务器,使用服务器的 MAC 地址。 |
app_name | 要部署的 Spring Boot jar 的完整名称,由 Block Lang 平台中的用户名和项目名组成,格式为 @userName/projectName。 |
app_version | 要部署的 Spring Boot jar 的版本号。 |
app_file_name | 要部署的 Spring Boot jar 的完整文件名,与发布中心的名字保持一致。 |
app_run_port | Spring Boot jar 在服务器上的运行端口。 |
jdk_name | JDK 在 Block Lang 平台登记的名称。 |
jdk_version | JDK 的完整版本号。 |
jdk_file_name | JDK 的完整文件名,在服务器上 JDK 以此命名。 |