ControlProxy/control-proxy-backend/yjs/ControlProxy接口.md
2023-11-17 17:32:56 +08:00

20 KiB
Executable File
Raw Blame History

ControlProxy接口

基本要求:

1.返回结果的result 不应该是jsonstr格式当它可以是json对象时需要以json对象返回。 2.异常处理,约定异常格式。提供工具类返回异常格式的消息。

3.输入参数都以json格式如参数为doId

{
	"doId":"xx.yy/zz"
}

4.正常返回:(只返回状态的接口)

{
	"msg":"success",
	"code":0,
}

5.正常返回:(返回一共数组)

{
	"msg":"success",
	"code":0,
	"data":{}//要返回的数据
}

6.异常返回:

{
	"msg":"missing argument",
	"code":1
}

{
	"msg":"request to much",
	"code":2
}
...

7.若返回一个列表的部分的接口需要给定总数字段这样的接口参数需要提供count和offset

//搜索接口返回
//这个例子表示符合条件的一共有9999条数据只返回count和offset限定的3条数据
{
"data":[
  {},
  {},
  {}
],
 "total":9999
}

Repo元数据

字段 说明 示例
doId string Repo的Id "bdware.txte/Repo"
name string Repo名称 "xx数字对象仓库"
owner string 所有者 "xx局"
contractID string 合约名称或者合约ID "DBRepo"
type string Repo类型(待扩展) "Table"/"Http"
description string 说明 "这是一段关于该repo的说明"
enableIndex bool 是否索引 true
createTime long 创建时间 1641364002477
status string 状态(在线/离线) "online"或者"offline"
check string 审核情况(提交/通过/不通过) "submit"或"success"或"faild"
operator string 操作员 "张三"
manager array 管理员 ["xx局","yy局","zz部门"]

DO元数据

字段 说明 示例
doId string do的Id "bdware.txte/Repo/do.dbname.tablename"
name string do的名称 "xx表格"
type string Repo类型(待扩展) "SQL"或者"CSV"
description string 说明 "这是一段关于该DO的说明"
schema string 数据格式描述(DOd?) ""
createTime long 创建时间 1641364002477

Repo元数据示例

{
	"doId":"bdware.txte/Repo",
    "name":"xx部门数据仓库",
    "type":"",
    "description":"这是一个repo",

    "owner":"xx省yy市zz部门",
    "contractID":"DBRepo",
    "enableIndex":true, 
    "createTime":1641364002477,
    "status":"online",
    "check":"submit",
    "operator":"张三",
    "manager":["xx局","yy局","zz部门"]
}

示例说明getDoCount

  • 说明调用搜索引擎的统计接口返回对应repo的doId当中含有输入参数的repo的do数量

  • 参数一个字符串用于doId的模糊匹配

    {
    	"key":"bdware.txte/Repo"
    }
    
  • 正常返回result的值是json对象而不是字符串

    //空:
    {
        "data":[]
    }
    //非空:
    {
        "data":[
            {"doId":"bdware.txte/Repo1","count":10},
            {"doId":"bdware.txte/Repo2","count":12}
        ],
        "total":9999
    }
    //调用返回的全部内容是正常还是异常看status字段
    {"needSeq":false,"seq":0,"status":"Success","result":{"data":[{"doId":"bdware.txte/Repo1","count":10},{"doId":"bdware.txte/Repo2","count":12}]},"isInsnLimit":false,"totalGas":0,"executionGas":0,"extraGas":0,"size":0,"eventRelated":false,"responseID":"1645085355104_1279","action":"onExecuteResult","executeTime":"9"}
    
    
  • 异常返回抛出异常result的内容是个字符串表示异常内容或者异常的信息

    //异常返回方式
    YancloudUtil.exceptionReturn({"msg":"missing arguments repoId ","code":1});
    
    //结果
    {"needSeq":false,"seq":0,"status":"Exception","result":{"msg":"xxx","code":1},"isInsnLimit":false,"totalGas":0,"executionGas":0,"extraGas":0,"size":0,"eventRelated":false,"responseID":"1645085126815_8926","action":"onExecuteResult","executeTime":"17"}
    

一、ControlProxy.yjs @李智

1.addRepo

  • 说明调用Gateway的addLocalRepo由GateWay检查参数等正确返回代码为0错误返回提供具体错误代码及原因

  • 参数

    {
    	"doId":"bdware.txte/Repo",
        "name":"xx部门数据仓库",
        "type":"",
        "description":"这是一个repo",
    
        "owner":"xx省yy市zz部门",
        "contractID":"DBRepo",
        "enableIndex":true, 
        "createTime":1641364002477,
        "status":"online",
        "check":"submit",
        "operator":"张三",
        "manager":["xx局","yy局","zz部门"]
    }
    
  • 正常返回

    {
        "msg":"success",
        "rrt":"110ms",
        "code":0
    }
    
  • 异常返回msg错误信息code错误代码

    {
        "msg":"missing arguments repoId ",
        "code":1
    }
    

2.pingRepo

  • 说明

  • 参数

    {
        "doId":"bdware.ss/Repox"
    }
    
  • 正常返回

    {
        "msg":"success",
        "rrt":"110ms",
        "code":0,
        "repoInfo":
        {
            "doId":"bdware.txte/Repo",
            "name":"xx部门数据仓库",
            "type":"",
            "description":"这是一个repo",
    
            "owner":"xx省yy市zz部门",
            "contractID":"DBRepo",
            "enableIndex":true, 
            "createTime":1641364002477,
            "status":"online",
            "check":"submit",
            "operator":"张三",
            "manager"["xx局","yy局","zz部门"]
    	}//repo元数据
    }
    
  • 异常返回

    {
        "msg":"repo is unconnected",
        "code":1
    }
    

3.getRepoList

  • 说明

  • 参数:无

  • 正常返回

    {
        "data":[
            {},//repo元数据
            {},//repo元数据
            {}//repo元数据
        ],
        "total":9999
    }
    
  • 异常返回

    {
        "msg":"repo is unconnected",
        "code":1
    }
    

4.deleteRepo

  • 说明

  • 参数

    {
        "doId":"bdware.ss/Repox"
    }
    
  • 正常返回

    {
        "msg":"success",
        "code":0
    }
    
  • 异常返回msg错误信息code错误代码

    {
        "msg":"can not found repo",
        "code":1
    }
    

5.deleteRepoList4和5是同一个

  • 说明

  • 参数

    [
        {"doId":"bdware.ss/Repox"},
        {"doId":"bdware.ss/Repoy"}
    ]
    
  • 正常返回

    {
        [{
        "msg":"success",
        "code":0
    },
        {
        "msg":"success",
        "code":0
    },
    {
        "msg":"success",
        "code":0
    }]
    }
    
  • 异常返回

    {
        "msg":"can not found repo",
        "code":1
    }
    

6.updateRepo

  • 说明

  • 参数:全部元数据

     {
            "doId":"bdware.txte/Repo",
            "name":"xx部门数据仓库",
            "type":"",
            "description":"这是一个repo",
    
            "owner":"xx省yy市zz部门",
            "contractID":"DBRepo",
            "enableIndex":true, 
            "createTime":1641364002477,
            "status":"online",
            "check":"submit",
            "operator":"张三",
            "manager"["xx局","yy局","zz部门"]
    }
    
    • 正常返回
    {
        "doId":"bdware.ss/Repox"
    }
    
  • 异常返回

    {
        "msg":"can not found repo",
        "code":1
    }
    

二、networking.yjs @范博

1.getRouterInfo

  • 说明

  • 参数:无

  • 正常返回

    {
        "date": 1642467459759,
        "name": "next路由器",
        "doId": "bdwaretest.loccall.next1",
        "version": "2.1",
        "address": "127.0.0.1:2222",
        "status": "已审核",
        "protocol": "IRP",
        "pubKey":"04d1924329f72ced148f6f333fb985ccbaa31b1e3aacf10be5f43d4a4ff5ad88899a005e79e37fc06993e1d66ada8cf8b711cb36f59538bb7d3e39e70fa9360ddd"
    }
    
  • 异常返回

    {
        "msg":"can not found repo",
        "code":1
    }
    

2.listLRS

  • 说明

  • 参数:无

  • 说明该接口暂时不会有太多数据因此没有提供total字段和countoffset方式

  • 正常返回

    {
        //"result":"success",
        "data":[
            {
                "protocol":"DO-IRP协议","name":"ee","pubKey":"046c31d1e4f0056325c352a6c9934c1d15a51ef4b5bc552387a1c43188b2317a1863a9072cf612c2c15e5353083cf47e2024b49e416e8f6f8d4b0db496b67336f5","version":"2.0","address":"1.1.1.1:333","doId":"bdtest5.r1.121111111444","date":1643340044943
            },
            {"protocol":"DO-IRP协议","name":"aaa","pubKey":"04bb83950bf8f0b02cc9c95eb25a30950958e2c271c423c28a3612f5bc199a94c55c637d15876e442c265e1b3f970fb167ba59a489157f279955d69a12359501df","version":"2.0","address":"1.1.1.1:44","doId":"bdtest5.r1.ss","date":1645510310038},{"protocol":"DO-IRP协议","name":"test2","pubKey":"04bb83950bf8f0b02cc9c95eb25a30950958e2c271c423c28a3612f5bc199a94c55c637d15876e442c265e1b3f970fb167ba59a489157f279955d69a12359501df","version":"2.0","address":"1.1.1.1:44","doId":"bdtest5.r1.test2","date":1645510310038},
            {"protocol":"DO-IRP协议","name":"test","pubKey":"04982fc8507302c57a0389de1f6fc8a72c70577dff15fb0f23d3898742ac7684ace75c3b12dec94b8866ffcea9ef4795c09074327e4f1822b546cc6f783931da94","version":"2.0","address":"1.1.1.1:55","doId":"bdtest5.r1.tttTest","date":1643338165008
            }
        ],
        "count":4
    }
    
  • 异常返回

    {
        "msg":"can not found repo",
        "code":1
    }
    

3.updateLRS

  • 说明

  • 参数

    {
        "date": 1642467459759,
        "oldName": "路由器",
        "oldDoId": "bdwaretest.loccall.next0",
        "name": "next路由器",
        "doId": "bdwaretest.loccall.next1",
        "version": "2.1",
        "address": "127.0.0.1:2222",
        "status": "已审核",
        "protocol": "IRP",
        "pubKey":"04d1924329f72ced148f6f333fb985ccbaa31b1e3aacf10be5f43d4a4ff5ad88899a005e79e37fc06993e1d66ada8cf8b711cb36f59538bb7d3e39e70fa9360ddd"
    }
    
  • 正常返回:新的doid

    {
        "data":"xxx.xx/aa";
    }
    
  • 异常返回

    {
        "msg":"can not found repo",
        "code":1
    }
    

4.createLRS除了oldname和olddoid其他和undate一样

  • 说明

  • 参数

    {
        "date": 1642467459759,
        "name": "next路由器",
        "doId": "bdwaretest.loccall.next1",
        "version": "2.1",
        "address": "127.0.0.1:2222",
        "status": "已审核",
        "protocol": "IRP",
        "pubKey":"04d1924329f72ced148f6f333fb985ccbaa31b1e3aacf10be5f43d4a4ff5ad88899a005e79e37fc06993e1d66ada8cf8b711cb36f59538bb7d3e39e70fa9360ddd"
    }
    
  • 正常返回

    {
        "data":"bdware.ss/Repox"
    }
    
  • 异常返回

    {
        "msg":"can not found repo",
        "code":1
    }
    

5.deleteLRS

  • 说明

  • 参数

    {
        "name": "Repo1",
        "doId": "bdwaretest.loccall/Repo1",
    "pubKey":"04d1924329f72ced148f6f333fb985ccbaa31b1e3aacf10be5f43d4a4ff5ad88899a005e79e37fc06993e1d66ada8cf8b711cb36f59538bb7d3e39e70fa9360ddd"
    }
    
  • 正常返回

    {
        "data":"bdware.ss/Repox"
    }
    
  • 异常返回

    {
        "msg":"can not found repo",
        "code":1
    }
    

6.listRepo同listLRS

  • 说明

  • 参数

    {
        "doId":"...",
        "address":"...", 
        "owner":"...",
        "...":"..."
    }
    
  • 正常返回

    {
        "doId":"bdware.ss/Repox"
    }
    
  • 异常返回

    {
        "doId":"bdware.ss/Repox"
    }
    

7.updateRepo同updateLRS

  • 说明

  • 参数

    {
        "doId":"...",
        "address":"...", 
        "owner":"...",
        "...":"..."
    }
    
  • 正常返回

    {
        "doId":"bdware.ss/Repox"
    }
    
  • 异常返回

    {
        "doId":"bdware.ss/Repox"
    }
    

8.createRepo(同createLRS)

  • 说明

  • 参数

    {
        "date": 1642467459759,
        "name": "Repo1",
        "doId": "bdwaretest.loccall/Repo1",
        "version": "2.1",
        "address": "tcp://127.0.0.1:21042",
        "status": "已审核",
        "protocol": "DOIP",
        "pubKey": "04d1924329f72ced148f6f333fb985ccbaa31b1e3aacf10be5f43d4a4ff5ad88899a005e79e37fc06993e1d66ada8cf8b711cb36f59538bb7d3e39e70fa9360ddd"
    }
    
  • 正常返回

    {
        "doId":"bdware.ss/Repox"
    }
    
  • 异常返回

    {
        "doId":"bdware.ss/Repox"
    }
    

9.deleteRepo同deleteLRS

  • 说明

  • 参数

    {
        "name": "next路由器",
        "doId": "bdwaretest.loccall.next1",
        "pubKey": "04d1924329f72ced148f6f333fb985ccbaa31b1e3aacf10be5f43d4a4ff5ad88899a005e79e37fc06993e1d66ada8cf8b711cb36f59538bb7d3e39e70fa9360ddd"
    }
    
  • 正常返回

    {
        "doId":"bdware.ss/Repox"
    }
    
  • 异常返回

    {
        "doId":"bdware.ss/Repox"
    }
    

10.setRootRouterInfo(和Create一样)

  • 说明

  • 参数

    {
        "date": 1642467459759,
        "name": "Repo1",
        "doId": "bdwaretest.loccall/Repo1",
        "version": "2.1",
        "address": "tcp://127.0.0.1:21042",
        "status": "已审核",
        "protocol": "DOIP",
        "pubKey": "04d1924329f72ced148f6f333fb985ccbaa31b1e3aacf10be5f43d4a4ff5ad88899a005e79e37fc06993e1d66ada8cf8b711cb36f59538bb7d3e39e70fa9360ddd"
    }
    
  • 正常返回

    {
        "data":"bdware.ss/Repox"
    }
    
  • 异常返回

    {
        "msg":"can not found repo",
        "code":1
    }
    

11.reInit

  • 说明

  • 参数:无

  • 正常返回

    {
        "data":"verify and start server success"
    }
    
  • 异常返回

    {
        "msg":"can not found repo",
        "code":1
    }
    

三、repodetail.yjs

1.getDoList @张宏伟

  • 说明如果指定repo那么就是指定repo的dolist否则是全部的

  • 参数

    {"doId":"xxx"}
    //或者
    {}
    
  • 正常返回

    {
    	"data":[{},{},{}],
        "total":9999
    }
    
  • 异常返回

    {
        "msg":"can not found repo",
        "code":1
    }
    

2.getRepoTopology

  • 说明

  • 参数

    {
        "doId":"..."
    }
    
  • 正常返回

    {
        "data":[
            {"name":"小店区仓库","doId":"bdware.ss.ab/Repo1","previousNode":["bdware.ss/Gateway1","bdware.ss/Gateway2"]},
            {"name":"小店区仓库","doId":"bdware.ss.ab/Repo1","previousNode":["bdware.ss/Gateway1","bdware.ss/Gateway2"]},
            {"name":"小店区仓库","doId":"bdware.ss.ab/Repo1","previousNode":["bdware.ss/Gateway1","bdware.ss/Gateway2"]},
            {"name":"小店区仓库","doId":"bdware.ss.ab/Repo1","previousNode":["bdware.ss/Gateway1","bdware.ss/Gateway2"]}
               ],
        "total":9999
    }
    
  • 异常返回

    {
        "msg":"can not found repo",
        "code":1
    }
    

3.getStaticIndex(先不管)

  • 说明

4.fakeList

  • 说明

四、search.yjs

1.getDoCount @张宏伟

  • 说明调用搜索引擎的统计接口返回对应repo的doId当中含有输入参数的repo的do数量

  • 参数一个字符串用于doId的模糊匹配

    bdware.txte/Repo
    
  • 正常返回result的值是json对象而不是字符串

    //空:
    {
        "data":[],
        "total":0
    }
    //非空:
    {
        "data":[
            {"doId":"bdware.txte/Repo1","count":10},
            {"doId":"bdware.txte/Repo2","count":12}
        ],
        "total":2
    }
    //调用返回的全部内容是正常还是异常看status字段
    {"needSeq":false,"seq":0,"status":"Success","result":{"data":[{"doId":"bdware.txte/Repo1","count":10},{"doId":"bdware.txte/Repo2","count":12}]},"isInsnLimit":false,"totalGas":0,"executionGas":0,"extraGas":0,"size":0,"eventRelated":false,"responseID":"1645085355104_1279","action":"onExecuteResult","executeTime":"9"}
    
  • 异常返回抛出异常result的内容是个字符串表示异常内容

    {"needSeq":false,"seq":0,"status":"Exception","result":{"msg":"xxx","code":1},"isInsnLimit":false,"totalGas":0,"executionGas":0,"extraGas":0,"size":0,"eventRelated":false,"responseID":"1645085126815_8926","action":"onExecuteResult","executeTime":"17"}
    

2.countRecordByDate @董瑞

  • 说明:

    //=====全域监管:数字对象溯源 针对单个DO的通过SQL查询来实现。 //根据 doId --> 找到“数字对象世系” //86.500.1/Repo.1/Doab //根据 doId+时间范围+interval+protocol --> 不同operation的统计数据 AuditProxy) //countDORecordByDate() //{"doId":xxxx,"startTime","endTime","interval","eventPrefix":["doip_create","doip_update"]} //{"eventxxx":[1,2,3],"event2":[1,2,3]}

    //根据 doId +查找条件(时间范围 protocol operation user?) +offset/count -->总数+指定条数的数组AuditProxy) // queryDoRecordByDate //{"doId":xxxx,"startTime","endTime","eventPrefix":["doip_create","doip_update"]} //{"count":xx, "data":[{doip_request的某一行。},]} // queryDoRecordByOffset //{"doId":xxxx,"offset","count","eventPrefix":["doip_create","doip_update"]} //{"total":xx,"count":xx, "data":[{doip_request的某一行。},]} //==============

  • 参数下面的内容表示owner字段当中包含"xxx"且doid当中包含"aibd"的结果

    {
        "startTime":1641454745128,
        "endTime":1641494745128,
        "interval":5000,
        "eventPrefix":["abc"]
    }
    
  • 正常返回repo元数据的数组每一个{}表示一个元数据

    {
        "doip_search":[1,2,3,4],
        "doip_create":[5,6,7,8]
    }
    
  • 异常返回

    {
        "msg":"can not found repo",
        "code":1
    }
    

3.getDoFilter @张宏伟

  • 说明:按照某一字段值的范围查询

  • 参数下面是按照字段createTime的时间来查询count和offset可缺省

    {
        "type":"creatTime",
        "count":10,
        "offset":0,
        "from":"1141363811328",
        "to":"1941363811328"
    }
    
  • 正常返回repo元数据的数组每一个{}表示一个元数据

    {
        "data":[
            {},{},{}
        ],
        "total":3
    }
    
  • 异常返回

    {
        "msg":"can not found repo",
        "code":1
    }
    

4.search

  • 说明:支持多个字段的搜索

  • 参数下面的内容表示owner字段当中包含"xxx"且doid当中包含"aibd"的结果

    {
        "params":[
            {"type":"owner","keyword":"xxx"},
            {"type":"doid","keyword":"aibd"}
        ],
        "count":10,
        "offset":0
    }
    
  • 正常返回repo元数据的数组每一个{}表示一个元数据

    {
        "data":[
            {},{},{}
        ],
        "total":3
    }
    
  • 异常返回

    {
        "msg":"can not found repo",
        "code":1
    }