366 lines
7.5 KiB
Markdown
366 lines
7.5 KiB
Markdown
# Initialize 初始化微服务
|
||
|
||
|
||
## 介绍
|
||
|
||
Initialize 微服务负责在初始化数据、检测新版本或新的配置、获取应用的相关配置信息、系统区域数据、系统标签数据等其它应用相关数据。
|
||
|
||
## 源码仓库
|
||
```
|
||
https://git.apinb.com/bsm-service-base/initialize
|
||
```
|
||
|
||
## 安装
|
||
|
||
要安装 Initialize 初始化微服务,请确保您已经安装了 bsm cli, 安装命令如下:
|
||
|
||
```bash
|
||
bsm install initialize
|
||
```
|
||
|
||
## 配置文件
|
||
|
||
在 `etc/` 目录中,根据dev,test,prod环境不同读取不同的配置文件,通过配置微服务决定是否启用相关服务,例如:
|
||
|
||
initialize_prod.yaml
|
||
```yaml
|
||
Name: {ServiceKey}
|
||
ListenOn: 0.0.0.0:12202
|
||
|
||
Dsn: postgres://postgres:******@127.0.0.1:5432/{Workspace}_prod?sslmode=disable&TimeZone=Asia/Shanghai
|
||
|
||
# cache DB的选择请在后面直接带参数,不带会自动HASH计算选择DB库。
|
||
Cache: redis://null:******@127.0.0.1:6379/
|
||
|
||
Etcd:
|
||
Hosts:
|
||
- 127.0.0.1:2379
|
||
Key: service.{Workspace}.{ServiceKey}.rpc
|
||
|
||
# 匿名访问清单,自动注入网关层
|
||
Anonymous:
|
||
Key: anonymous.{Workspace}
|
||
Urls:
|
||
- initialize.Check.Hello
|
||
- initialize.Check.Updates
|
||
- initialize.Data.Configure
|
||
- initialize.Data.Areas
|
||
- initialize.Data.Tags
|
||
|
||
|
||
# 日志记录, 注释将不启用此功能
|
||
Log:
|
||
ServiceName: {ServiceKey}
|
||
Mode: file
|
||
Path: logs/{ServiceKey}
|
||
Stat: false
|
||
|
||
# 性能监控, 注释将不启用此功能
|
||
Prometheus:
|
||
Host: 127.0.0.1
|
||
Port: 22202
|
||
Path: /metrics
|
||
|
||
# 链路追踪, 注释将不启用此功能
|
||
Telemetry:
|
||
Name: {Workspace}.{ServiceKey}.{RuntimeMode}
|
||
Endpoint: http://127.0.0.1:14268/api/traces
|
||
Sampler: 1.0
|
||
Batcher: jaeger
|
||
|
||
# MQ Pulsar, 不启用
|
||
#Pulsar:
|
||
# Endpoints: 127.0.0.1
|
||
# Token: 9091
|
||
# Namespaces: {Workspace}
|
||
|
||
```
|
||
|
||
## 管理微服务
|
||
|
||
使用以下命令管理微服务:
|
||
|
||
```bash
|
||
bsm start/restart/update initialize
|
||
```
|
||
|
||
## API 接口说明
|
||
|
||
### 检测是否有新版或新的配置
|
||
|
||
POST /initialize.Check.Updates
|
||
|
||
> Body 请求参数
|
||
|
||
```json
|
||
{
|
||
"app": "ut occaecat sit Duis proident",
|
||
"os": "consequat laborum velit reprehenderit",
|
||
"arch": "exercitation sit reprehenderit in amet",
|
||
"version": "minim ullamco"
|
||
}
|
||
```
|
||
|
||
#### 请求参数
|
||
|
||
|名称|位置|类型|必选|中文名|说明|
|
||
|---|---|---|---|---|---|
|
||
|Request-Id|header|string| 是 ||请求ID|
|
||
|Content-Type|header|string| 是 ||传输格式|
|
||
|Workspace|header|string| 是 ||项目名称|
|
||
|Authorization|header|string| 否 ||用户通行证Token|
|
||
|body|body|object| 否 ||none|
|
||
|» app|body|string| 是 | 应用程序名称 <必填>|应用程序名称|
|
||
|» os|body|string| 是 | 操作系统 <必填>|操作系统|
|
||
|» arch|body|string| 是 | 构架名称 <必填>|构架名称|
|
||
|» version|body|string| 是 | 版本号 <必填>|版本号|
|
||
|
||
> 返回示例
|
||
|
||
> 200 Response
|
||
|
||
```json
|
||
{
|
||
"identity": "string",
|
||
"version": "string",
|
||
"summary": "string",
|
||
"files": "string",
|
||
"pubdate": "string"
|
||
}
|
||
```
|
||
|
||
#### 返回结果
|
||
|
||
|状态码|状态码含义|说明|数据模型|
|
||
|---|---|---|---|
|
||
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
|
||
|
||
#### 返回数据结构
|
||
|
||
状态码 **200**
|
||
|
||
|名称|类型|必选|约束|中文名|说明|
|
||
|---|---|---|---|---|---|
|
||
|» identity|string|true|none|唯一标识|0为未找到相应版本|
|
||
|» version|string|true|none|版本号|0为未找到相应版本|
|
||
|» summary|string|true|none||none|
|
||
|» files|string|true|none||none|
|
||
|» pubdate|string|true|none||none|
|
||
|
||
### 获取应用的相关配置信息
|
||
|
||
POST /initialize.Data.Configure
|
||
|
||
> Body 请求参数
|
||
|
||
```json
|
||
{
|
||
"app": "milu",
|
||
"os": "windows"
|
||
}
|
||
```
|
||
|
||
#### 请求参数
|
||
|
||
|名称|位置|类型|必选|中文名|说明|
|
||
|---|---|---|---|---|---|
|
||
|Content-Type|header|string| 是 ||none|
|
||
|Request-Id|header|string| 是 ||请求ID|
|
||
|Workspace|header|string| 是 ||项目名称|
|
||
|Authorization|header|string| 否 ||用户通行证Token|
|
||
|body|body|object| 否 ||none|
|
||
|» app|body|string| 是 | 应用程序名称 <必填>|应用程序名称|
|
||
|» os|body|string| 是 | 操作系统 <必填>|操作系统|
|
||
|
||
> 返回示例
|
||
|
||
> 200 Response
|
||
|
||
```json
|
||
{}
|
||
```
|
||
|
||
#### 返回结果
|
||
|
||
|状态码|状态码含义|说明|数据模型|
|
||
|---|---|---|---|
|
||
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
|
||
|
||
#### 返回数据结构
|
||
|
||
状态码 **200**
|
||
|
||
*empty object*
|
||
|
||
|名称|类型|必选|约束|中文名|说明|
|
||
|---|---|---|---|---|---|
|
||
|
||
### 获取系统区域数据
|
||
|
||
POST /initialize.Data.Areas
|
||
|
||
> Body 请求参数
|
||
|
||
```json
|
||
{}
|
||
```
|
||
|
||
#### 请求参数
|
||
|
||
|名称|位置|类型|必选|中文名|说明|
|
||
|---|---|---|---|---|---|
|
||
|Content-Type|header|string| 是 ||none|
|
||
|Request-Id|header|string| 是 ||请求ID|
|
||
|Workspace|header|string| 是 ||项目名称|
|
||
|Authorization|header|string| 否 ||用户通行证Token|
|
||
|body|body|object| 否 ||none|
|
||
|» is_town|body|boolean| 否 ||是否列出乡镇数据,【开关】|
|
||
|
||
> 返回示例
|
||
|
||
> 200 Response
|
||
|
||
```json
|
||
{
|
||
"areas": [
|
||
{
|
||
"id": "string",
|
||
"pid": "string",
|
||
"deep": 0,
|
||
"name": "string",
|
||
"pinyinPrefix": "string",
|
||
"pinyin": "string",
|
||
"extId": "string",
|
||
"extName": "string"
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
#### 返回结果
|
||
|
||
|状态码|状态码含义|说明|数据模型|
|
||
|---|---|---|---|
|
||
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
|
||
|
||
#### 返回数据结构
|
||
|
||
状态码 **200**
|
||
|
||
*empty object*
|
||
|
||
|名称|类型|必选|约束|中文名|说明|
|
||
|---|---|---|---|---|---|
|
||
|» areas|[object]|true|none||区域数据数组|
|
||
|»» id|string|true|none||none|
|
||
|»» pid|string|true|none||none|
|
||
|»» deep|integer|true|none||none|
|
||
|»» name|string|true|none||none|
|
||
|»» pinyinPrefix|string|true|none||none|
|
||
|»» pinyin|string|true|none||none|
|
||
|»» extId|string|true|none||none|
|
||
|»» extName|string|true|none||none|
|
||
|
||
### 获取系统标签数据
|
||
|
||
POST /initialize.Data.Tags
|
||
|
||
> Body 请求参数
|
||
|
||
```json
|
||
{}
|
||
```
|
||
|
||
#### 请求参数
|
||
|
||
|名称|位置|类型|必选|中文名|说明|
|
||
|---|---|---|---|---|---|
|
||
|Content-Type|header|string| 是 ||none|
|
||
|Request-Id|header|string| 是 ||请求ID|
|
||
|Workspace|header|string| 是 ||项目名称|
|
||
|Authorization|header|string| 否 ||用户通行证Token|
|
||
|body|body|object| 否 ||none|
|
||
|
||
> 返回示例
|
||
|
||
> 200 Response
|
||
|
||
```json
|
||
{
|
||
"tags": [
|
||
"string"
|
||
]
|
||
}
|
||
```
|
||
|
||
#### 返回结果
|
||
|
||
|状态码|状态码含义|说明|数据模型|
|
||
|---|---|---|---|
|
||
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
|
||
|
||
#### 返回数据结构
|
||
|
||
状态码 **200**
|
||
|
||
*empty object*
|
||
|
||
|名称|类型|必选|约束|中文名|说明|
|
||
|---|---|---|---|---|---|
|
||
|» tags|[string]|true|none||标签数据数组|
|
||
|
||
### hello
|
||
|
||
POST /initialize.Check.Hello
|
||
|
||
> Body 请求参数
|
||
|
||
```json
|
||
{}
|
||
```
|
||
|
||
#### 请求参数
|
||
|
||
|名称|位置|类型|必选|中文名|说明|
|
||
|---|---|---|---|---|---|
|
||
|Request-Id|header|string| 是 ||请求ID|
|
||
|Content-Type|header|string| 是 ||传输格式|
|
||
|Workspace|header|string| 是 ||项目名称|
|
||
|Authorization|header|string| 否 ||用户通行证Token|
|
||
|body|body|object| 否 ||none|
|
||
|
||
> 返回示例
|
||
|
||
> 200 Response
|
||
|
||
```json
|
||
{
|
||
"Code": 0,
|
||
"Data": {
|
||
"identity": "string",
|
||
"status": "string",
|
||
"message": "string",
|
||
"timeseq": "string"
|
||
}
|
||
}
|
||
```
|
||
|
||
#### 返回结果
|
||
|
||
|状态码|状态码含义|说明|数据模型|
|
||
|---|---|---|---|
|
||
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
|
||
|
||
#### 返回数据结构
|
||
|
||
状态码 **200**
|
||
|
||
|名称|类型|必选|约束|中文名|说明|
|
||
|---|---|---|---|---|---|
|
||
|» Code|integer|true|none||none|
|
||
|» Data|object|true|none||none|
|
||
|»» identity|string|true|none||none|
|
||
|»» status|string|true|none||none|
|
||
|»» message|string|true|none||none|
|
||
|»» timeseq|string|true|none||none|
|