标准API接口转发APP\(Apiadapt\)

需求设计:

⼀.k8s安装APP(仅在k8s环境中的功能点)

功能点名称:服务配置

原型:

    1. 功能点描述:

此功能点是为了设置k8s pod中的服务状态和设置提供服务的副本数,需要注意的是,此功能要在系统中判断是否是k8s的分布式环境

实现步骤:

  1. 点击应⽤市场中的“安装”按钮,弹出服务配置
  2. 在服务配置窗⼝中选择“有状态”或者是“⽆状态”(默认是⽆状态),输⼊副本数(仅允许输⼊正整数,默认是

1)

  1. 点“确认”按钮,后续进⾏常规安装

调⽤接⼝

输⼊参数:

需要在原来install接⼝服务中增加 kind 和 replicas,分别代表状态和副本数 kind有两种状态分别是:

kind: stateful kind: unStateful

例如如下⼊参json

{

"id": "guid",

"jsonrpc": "2.0",

"method": "service", "params": {

"args": {

"ids": [

"02oj3ppkv9r0g"

],

"apps":[

{"id": "02oj3ppkv9r0g", "name": "mom-item"}

],

"kind": "stateful",

"replicas": 3

},

"context": {

"uid": "",

"lang": "zh_CN", "useDisplayForModel": true

},

"model": "meta_app_store", "tag": "master", "service": "installApp"

回调接⼝

}

}

http://127.0.0.1:4500/callback

调⽤⽅式:post回调输⼊参数:

保留以上接⼝⼊参的所有参数,增加dependencies、extend、caller,如下:

{

"id": "guid",

"jsonrpc": "2.0",

"method": "service", "params": {

"args": {

"ids": [

"02oj3ppkv9r0g"

],

"apps": [{

"id": "0279nkacdvpj4", "name": "app3"

}],

"kind": "stateful", "replicas": 3,

"dependencies": ["app1", "app2"],

"extend": ["app1", "app2"], "caller": "uninstall"

},

"service": "", "context": {

"uid": "",

"lang": "zh_CN"

},

"model": "meta_app",

"tag": "master"

}

}

功能点名称:服务列表

原型

    1. 功能点描述

列出⼀安装服务的服务列表

实现步骤

  1. 点击左边菜单的“运维管理”下的”服务列表“菜单,右边显示服务列表
  2. 点击列表“操作”列的“设置副本数”,可以设置该服务的副本数,服务数需要校验,只允许输⼊整数,⼤⼩控制在5

以内(可配置)

调⽤边⻋接⼝

服务列表

http://127.0.0.1:4500/getHosts

(与如下的docker 主机列表相同)

调⽤⽅式:get输⼊参数:

⽆输⼊参数

输出参数:

[{

"extend": ["iiot_base", "net", "iiot_thing", "iiot_project", "redis"], "caller": "start",

"replicas": 1, //副本数

"kind": "stateful",

"ids": ["032sscz5p8cu8", "032swsetcxssg", "032sxxbpv0v0g", "032sxxycue8e8", "032sxyju4ym0w", "032sxzdpb981s", "032sy0lve4c1s", "032sy2fogbi0w", "032sy32u5xgqo", "032sy3qxg6ark"],

"fromStream": false,

"model": "iiot_alarm_monitor",

"svcName": "iiot", // 服务名

"tag": "master",

"state": "installing", //状态: 有这个参数表示安装中,没有表示已安装

"apps": [{ //安装的应⽤

"name": "apiadapt", "id": "032sscz5p8cu8"

}, {

"name": "iiot_datasource", "id": "032swsetcxssg"

}, {

"name": "iiot_access", "id": "032sxxbpv0v0g"

},{

"name": "iiot_thing", "id": "032sy3qxg6ark"

}],

"dependencies": ["iiot_base", "iiot_thing", "iiot_task_scheduler", "iiot_store", "iiot_project", "net", "redis"]

},

{

"replicas": 1, "kind": "unStateful", "fromStream": false, "svcName": "doc",

"dependencies": [],

"extend": [],

"caller": "start", "useDisplayForModel": true, "ids": ["032sxvu6dvhmo"],

"model": "ui_menu",

"tag": "master",

"apps": [{

"name": "doc",

"id": "032sxvu6dvhmo"

}]

}

注:以上输出参数对应两个服务,对应⻚⾯的字段清查看注释

设置副本数调⽤⽅式:post

http://127.0.0.1:4500/setReplicas

输⼊参数:

{

"svcName": "app1", "replicas": 2

}

输出参数:

true/false

功能点名称:安装app加⼊现有服务

原型

    1. 功能点描述

把需要新安装的app加⼊到现有的服务pod中

实现步骤

      1. 在安装app的过程中可以选择“新建服务”或者“加⼊现有服务”
      2. “新建服务“与原来界⾯相同,”加⼊现有服务“可选择已经存在的服务名

调⽤接⼝

“服务名” 调⽤如上的服务列表可得到服务名列表

“确认” 与原来的安装接⼝相同

注:这个功能后端没有⼯作量,只是前端界⾯的改变

功能实现:

功能点名称:服务列表

App:apiadapt

Model:service_node

Service:search

功能点名称:安装app加⼊现有服务

App:base

Model:installed_service

Service:search