调用其它应用中的服务

例如:调用应用(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);

results matching ""

    No results matching ""

    results matching ""

      No results matching ""