标准API接口转发APP\(Apiadapt\)
需求设计:
⼀.k8s安装APP(仅在k8s环境中的功能点)
功能点名称:服务配置
原型:
-
- 功能点描述:
此功能点是为了设置k8s pod中的服务状态和设置提供服务的副本数,需要注意的是,此功能要在系统中判断是否是k8s的分布式环境
实现步骤:
- 点击应⽤市场中的“安装”按钮,弹出服务配置
- 在服务配置窗⼝中选择“有状态”或者是“⽆状态”(默认是⽆状态),输⼊副本数(仅允许输⼊正整数,默认是
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"
}
}
功能点名称:服务列表
原型
-
- 功能点描述
列出⼀安装服务的服务列表
实现步骤
- 点击左边菜单的“运维管理”下的”服务列表“菜单,右边显示服务列表
- 点击列表“操作”列的“设置副本数”,可以设置该服务的副本数,服务数需要校验,只允许输⼊整数,⼤⼩控制在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加⼊现有服务
原型
-
- 功能点描述
把需要新安装的app加⼊到现有的服务pod中
实现步骤
-
-
- 在安装app的过程中可以选择“新建服务”或者“加⼊现有服务”
- “新建服务“与原来界⾯相同,”加⼊现有服务“可选择已经存在的服务名
-
调⽤接⼝
“服务名” 调⽤如上的服务列表可得到服务名列表
“确认” 与原来的安装接⼝相同
注:这个功能后端没有⼯作量,只是前端界⾯的改变
功能实现:
功能点名称:服务列表
App:apiadapt
Model:service_node
Service:search
功能点名称:安装app加⼊现有服务
App:base
Model:installed_service
Service:search