调用其它应用中的服务
例如:调用应用(ent9)中的服务(main/fuwu/goodslist),返回用品表中的数据
一、js中调用
经典桌面端:
$.ajax({
method : "GET",
url : this.getServiceUrl("/main/fuwu/goodslist","ent9");
}).then(function(data, status, xhr) {
if(data && data.length > 0){
alert(data[0].name);
}
});
小程序或企业桌面端:
wx.request({
header: {
"Accept": "application/json"
},
url: this.getServiceUrl("/main/fuwu/goodslist","ent9"),
dataType: 'json',
method: 'GET'
});
二、java中调用
JSONArray arr = ServiceUtil.get(SpringWebUtil.getRequest(),"ent9","/main/fuwu/goodslist",null,JSONArray.class);
if(arr==null) {
return "无";
}else {
return String.valueOf(arr.size());
}
java中提供了com.justep.util.net.ServiceUtil中封装了相关的API
获取内网服务域名部分
ServiceUtil.getServiceUrl(String serviceName)
ServiceUtil.getServiceHost(String serviceName)
如:ent9应用所在的租户为dev1
ServiceUtil.getServiceUrl("ent9");//返回的是http://ent9dev14.tenant-dev1
ServiceUtil.getServiceHost("ent9");//返回的是ent9dev14.tenant-dev1
网络调用的封装有delete、get、post请求的API
delete和get、post的基本参数都是一样的,下面主要是get和post的说明
get请求
public static JSONObject get(HttpServletRequest contextRequest,String serviceName,String path, Map params)
public static JSONObject get(String url, Map params, Map headers)
public static T get(String url, Map params, Map headers, Class responseType)
public static T get(String url, Map params, Map headers, Class responseType,ServiceRequestBuildCallback callback)
下面的写法都是按第一种API实现的
1.返回JSONObject类型
JSONObject obj = ServiceUtil.get(SpringWebUtil.getRequest(),"ent9","/main/fuwu/goodslist",null);
2.返回非JSONObject类型
JSONArray arr = ServiceUtil.get(SpringWebUtil.getRequest(),"ent9","/main/fuwu/goodslist",null,JSONArray.class);//返回JSONArray类型
String str = ServiceUtil.get(SpringWebUtil.getRequest(),"ent9","/main/fuwu/goodslist",null,String.class);//返回String类型
//访问entry应用中的/opm/orgmanger/insertperson
Map<String,String> paramJson = new HashMap();
paramJson.put("parentSeq",org.getString("sequence"));
paramJson.put("personInfo",userObj.toJSONString());
paramJson.put("memberInfo",orgObj.toJSONString());
ServiceUtil.get(SpringWebUtil.getRequest(),"entry","/opm/orgmanger/insertperson",paramJson,void.class);
post请求,返回类型的控制跟get基本一样
public static JSONObject post(HttpServletRequest contextRequest,String serviceName,String path,JSONObject body)
public static JSONObject post(String url, JSONObject body, Map headers)
public static T post(String url, JSONObject body, Map headers, Class responseType)
public static T post(String url, AbstractHttpEntity entity, Map headers, Class responseType,ServiceRequestBuildCallback callback)
如entry应用中的/authorize/subjects
JSONObject persimmionInfoObj = new JSONObject();
persimmionInfoObj.put("id", com.justep.util.RandomUtil.uuid());
persimmionInfoObj.put("code", psmid);
persimmionInfoObj.put("name", code);
persimmionInfoObj.put("description", name);
persimmionInfoObj.put("role", "/roles/subadmin");
ServiceUtil.post(SpringWebUtil.getRequest(), "entry", "/authorize/subjects", persimminInfo);