接口可以提供Http服务让外部程序调用,使用Javascript编写,可以直接调用Java类。
入口
点系统的左上角导航->设计中心->服务管理->接口打开。
访问限制
如果“访问的地址表达式”不为空,那么只有匹配的地址可以访问,允许使用通配符。
接口调用
Content-Type: application/json
Content-Type: application/json; charset=utf-8
接口调试
打开URL: http://centerServer:20030/x_program_center/jest/index.html
在 上图的服务中填写接口的标识(接口别名、名称或者ID),在JsonElement区域输入接口接收数据,然后点击POST进行调试,接口会在Result区域输出返回数据。
可以在接口中使用print( text )
在服务器控制台输出调试信息。
输入和输出
在接口脚本中可以使用 requestText 来获取请求的内容。
在接口脚本的末尾使用直接量作为接口的输出。
样例: 在调用接口的时候提交的报文为 { "subject" : "接口测试样例" },那么脚本中的获取为:
var requestJson = JSON.parse(requestText);
if( typeof(requestJson) === "string" ){ //某些情况下可能需要转换两次
requestJson = JSON.parse(requestJson);
}
var subject = requestJson.subject; //subject值为"接口测试样例"
var result = { "result" : "已获取subject"+subject };
result; //接口的输出
最终接口的http request正文如下
{
"type": "success",
"data": {
"value": { //接口脚本的输出内容
"result": "已获取subject这是一个测试接口"
}
},
"message": "",
"date": "2019-08-18 18:09:24",
"spent": 397,
"size": -1,
"count": 0,
"position": 0
}
当前用户
使用 effectivePerson 来获取当前用户。
如果未登录系统,返回如下:
{
"tokenType": "anonymous",
"token": "",
"name": "anonymous",
"unique": "anonymous",
"distinguishedName": "anonymous",
"debugger": true,
"remoteAddress": "115.216.34.235",
"uri": "/x_program_center/jaxrs/invoke/invokeTest/execute",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0"
}
如果已登录系统,返回如下:
{
"tokenType": "user", //如果是管理员为manager
"token": "jlMh2guoFibWcTwR3NHdVTbw_ylqeq-uFLrLL9stmcruJSx7mPOjiX-euWIQv-ovp8orv1dTAwkavfdfdfdfdf",
"name": "张三",
"unique": "zhangsan",
"distinguishedName": "张三@zhangsan@P",
"debugger": true,
"remoteAddress": "115.216.34.235",
"uri": "/x_program_center/jaxrs/invoke/invokeTest/execute",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134"
}
完整样例
更多样例可以查看 webServer/x_component_service_InvokeDesigner/sample/ 目录