ServerJS调用

v1.0.2


1、接口说明

根据用户需求可定义在线接口(serverJS),其定义语言为Javascript(ES5语法)。ServerJS接口入口参数名称:input,可通过赋值该参数将数据输入到接口层进行后续处理。接口认证支持Basic方式。

# 接口地址
/script/exec/js

# 方法
  GET、POST

# 参数
  input=[string]    消息主题内容,在调用段消息内容为JSON,需要进行JSON.stringify和encodeURIComponent处理
  isfile=[bool]  默认true
  filepath=[string] 接口文件路径,运维数据中台中分布式文件系统路径
  rawdata=[bool]  是否只返回响应的消息主体

# Body
  input=[string] 消息主题内容,在调用段消息内容为JSON,需要进行JSON.
  filepath=[string] 接口文件路径,运维数据中台中分布式文件系统路径
  rawdata=[bool] 是否只返回响应的消息主体

# 成功  
  Code: 200
  Content: { status:"ok", message:{}}

# 失败
  Code: 500 ERROR
  Content: { status:"error", message:"error message." }

2、调用样例

在线封装一个获取流程cpu的接口:【cpu.js】,接口内容如下:

var action = function(){
  var rtn = null;
  try{
    rtn = odb.mql("select * from /cncc/action/change_main limit 200");
  }catch(err){
    log.error(err);
  }
  return rtn;
};

OUTPUT = action();

外部系统调用示例如下:

cURL

curl --location --request POST 'http://172.23.12.228:8080/script/exec/js?issys=true&filepath=/cncc/api/cpu.js' 
--header 'Authorization: Basic bWV0YS5hZG1pbjphZG1pbg==' 
--form 'input="{\"name\":\"test get cpu data\"}"'

Jquery

var form = new FormData();
form.append("input", "{\"name\":\"test get cpu data\"}");
var settings = {
  "url": "http://172.23.12.228:8080/script/exec/js?issys=true&filepath=/cncc/api/cpu.js",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Authorization": "Basic bWV0YS5hZG1pbjphZG1pbg=="
  },
  "processData": false,
  "mimeType": "multipart/form-data",
  "contentType": false,
  "data": form
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Python

import requests

url = "http://172.23.12.228:8080/script/exec/js?issys=true&filepath=/cncc/api/cpu.js"

payload={'input': '{"name":"test get cpu data"}'}
files=[]
headers = {
  'Authorization': 'Basic bWV0YS5hZG1pbjphZG1pbg=='
}

response = requests.request("POST", url, headers=headers, data=payload, files=files)

print(response.text)

Java

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("http://172.23.12.228:8080/script/exec/js?issys=true&filepath=/cncc/api/cpu.js"))
    .header("Accept", "*/*")
    .header("Authorization", "Basic d2VjaXNlLmFkbWluOmFkbWlu")
    .header("Content-Type", "application/json")
    .method("POST", HttpRequest.BodyPublishers.ofString("{\"input\": {\"name\":\"test get cpu data\"}}"))
    .build();
HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());

3、返回样例

{
  "message": {
    "PMTSAP01": {
      "cpu_busy": 23,
      "cpu_busy_avg": 33,
      "cpu_busy_max": 35,
      "timestamp": 1663316412049
    },
    "YPMTSAP01": {
      "cpu_busy": 33,
      "cpu_busy_avg": 33,
      "cpu_busy_max": 45,
      "timestamp": 1663316412049
    }
  },
  "status": "ok",
}



results matching ""

    No results matching ""