Skip to content

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-Idheaderstring请求ID
Content-Typeheaderstring传输格式
Workspaceheaderstring项目名称
Authorizationheaderstring用户通行证Token
bodybodyobjectnone
» appbodystring应用程序名称 <必填>应用程序名称
» osbodystring操作系统 <必填>操作系统
» archbodystring构架名称 <必填>构架名称
» versionbodystring版本号 <必填>版本号

返回示例

200 Response

json
{
  "identity": "string",
  "version": "string",
  "summary": "string",
  "files": "string",
  "pubdate": "string"
}

返回结果

状态码状态码含义说明数据模型
200OKnoneInline

返回数据结构

状态码 200

名称类型必选约束中文名说明
» identitystringtruenone唯一标识0为未找到相应版本
» versionstringtruenone版本号0为未找到相应版本
» summarystringtruenonenone
» filesstringtruenonenone
» pubdatestringtruenonenone

获取应用的相关配置信息

POST /initialize.Data.Configure

Body 请求参数

json
{
  "app": "milu",
  "os": "windows"
}

请求参数

名称位置类型必选中文名说明
Content-Typeheaderstringnone
Request-Idheaderstring请求ID
Workspaceheaderstring项目名称
Authorizationheaderstring用户通行证Token
bodybodyobjectnone
» appbodystring应用程序名称 <必填>应用程序名称
» osbodystring操作系统 <必填>操作系统

返回示例

200 Response

json
{}

返回结果

状态码状态码含义说明数据模型
200OKnoneInline

返回数据结构

状态码 200

empty object

名称类型必选约束中文名说明

获取系统区域数据

POST /initialize.Data.Areas

Body 请求参数

json
{}

请求参数

名称位置类型必选中文名说明
Content-Typeheaderstringnone
Request-Idheaderstring请求ID
Workspaceheaderstring项目名称
Authorizationheaderstring用户通行证Token
bodybodyobjectnone
» is_townbodyboolean是否列出乡镇数据,【开关】

返回示例

200 Response

json
{
  "areas": [
    {
      "id": "string",
      "pid": "string",
      "deep": 0,
      "name": "string",
      "pinyinPrefix": "string",
      "pinyin": "string",
      "extId": "string",
      "extName": "string"
    }
  ]
}

返回结果

状态码状态码含义说明数据模型
200OKnoneInline

返回数据结构

状态码 200

empty object

名称类型必选约束中文名说明
» areas[object]truenone区域数据数组
»» idstringtruenonenone
»» pidstringtruenonenone
»» deepintegertruenonenone
»» namestringtruenonenone
»» pinyinPrefixstringtruenonenone
»» pinyinstringtruenonenone
»» extIdstringtruenonenone
»» extNamestringtruenonenone

获取系统标签数据

POST /initialize.Data.Tags

Body 请求参数

json
{}

请求参数

名称位置类型必选中文名说明
Content-Typeheaderstringnone
Request-Idheaderstring请求ID
Workspaceheaderstring项目名称
Authorizationheaderstring用户通行证Token
bodybodyobjectnone

返回示例

200 Response

json
{
  "tags": [
    "string"
  ]
}

返回结果

状态码状态码含义说明数据模型
200OKnoneInline

返回数据结构

状态码 200

empty object

名称类型必选约束中文名说明
» tags[string]truenone标签数据数组

hello

POST /initialize.Check.Hello

Body 请求参数

json
{}

请求参数

名称位置类型必选中文名说明
Request-Idheaderstring请求ID
Content-Typeheaderstring传输格式
Workspaceheaderstring项目名称
Authorizationheaderstring用户通行证Token
bodybodyobjectnone

返回示例

200 Response

json
{
  "Code": 0,
  "Data": {
    "identity": "string",
    "status": "string",
    "message": "string",
    "timeseq": "string"
  }
}

返回结果

状态码状态码含义说明数据模型
200OKnoneInline

返回数据结构

状态码 200

名称类型必选约束中文名说明
» Codeintegertruenonenone
» Dataobjecttruenonenone
»» identitystringtruenonenone
»» statusstringtruenonenone
»» messagestringtruenonenone
»» timeseqstringtruenonenone

Released under the MIT License.