美文网首页
DolphinDB WebApi

DolphinDB WebApi

作者: DD_LINL | 来源:发表于2018-07-17 11:39 被阅读0次

DolphinDB WebApi

简介

DolphinDB WebApi是DolphinDB提供的访问Server 资源的程序接口,通过向url(http://Ip:Port) post Json数据包,即可使server运行指定脚本代码,并将结果以json的格式返回

适用场景

任何编程语言,只要支持通过http协议向指定url提交数据,能够解析Json格式数据包,那么就可以使用 DolphinDB WebApi访问DolphinDB Server

Hello World

通过一个简单的示例,让大家直观的了解WebApi是如何调用的。

这里我们简单的让server做一个1+2=3的运算。只要组织一个类似下面的格式的json数据包,然后把数据包post到datanode url,比如 http://localhost:8848

  • javascript调用示例
var paramJson = {...}
var option = {
        url: "http://localhost:8848",
        async: true,
        data: paramJson,
        type: "POST",
        dataType: "json",
        success: function (data) {
             var resultJson = data; //data={...}
        }
    }
    $.ajax(option);
  • 入参格式
paramJson = {
    "sessionID": "942605602",
    "functionName": "executeCode",
    "params": [{
        "name": "script",
        "form": "scalar",
        "type": "string",
        "value": "1+2"
    }]
}
  • 返回结果格式
resultJson = {
    "sessionID": "942605602",
    "resultCode": "0",
    "msg": "",
    "object": [{
        "name": "",
        "form": "scalar",
        "type": "int",
        "value": "3"
    }]
}

Json包格式详解

[提交格式]
  • SessionID:指定调用的会话ID,初次调用会话ID为0,在一个用户登录会话期间,同一个Server会将SessionID跟登录用户关联

  • functionName:指定调用的函数名称。

  • params: functionName指定参数所需要的入参,params是一个json array

[返回格式]
  • sessionID:本次脚本执行所在的会话ID

  • resultCode : 0-执行正常 1-执行异常

  • msg:当resultCode为1时,此处会告知异常提示信息

  • object:脚本执行返回的对象信息。

Javascript DolphinDB WebApi Package

我们为javascript的开发者提供了访问webApi的开发包,封装如下方法:

  • CallWebApi: 提供 CallWebApi方法,将Json数据包提交到指定url
  • CodeExecutor: 提供run和runSync方法,是通过callWebApi的方式调用了Server的executeCode方法,封装了json参数的组装过程。
  • DolphinEntity:返回结果处理类。提供toScalar,toVector,toTable,toMatrix 方法,可以方便的将返回结果从json数据包中解析成为 javascript 的JsonObject或JsonArray,开发者根据返回的DataForm选择合适的方法来解析结果。

要使用javascript 开发包,需要引入 callWebApi.js, executeCode.js, dolphinApi.js

按照上面的例子,同样运行1+2的脚本,利用开发包调用方式如下

var server = new DatanodeServer("http://localhost:8848");
var result = new DolphinEntity(server.runSync("1+2")).toScalar();

在js里得到的result = 3

上面的代码使用同步方式调用,javascript脚本会等待server执行完毕后才会继续,如果需要使用异步方式调用,代码如下

var server = new DatanodeServer("http://localhost:8848");
server.run("1+2",function(re){
     var reObj = new DolphinEntity(re);
     var result = reObj.toScalar();
});

DolphinDB WebApi Reference

  1. run:异步执行脚本
new DatanodeServer("http://[datanodeIp]:[port]").run(script,function(re){
       //var jsonstr = re;
       //var DolphinEntity(jsonstr);
})
  1. runSync:同步执行脚本
var re = new DatanodeServer("http://[datanodeIp]:[port]").runSync(script);
  1. login:登录系统
new DatanodeServer("http://[datanodeIp]:[port]").login("admin","pass");
  1. logout:登出当前用户
new DatanodeServer("http://[datanodeIp]:[port]").logout()

相关文章

网友评论

      本文标题:DolphinDB WebApi

      本文链接:https://www.haomeiwen.com/subject/dsuwpftx.html