RestTemplate接收get和post请求接口数据,返回类型为对象和集合

使用RestTemplate分别请求get和post的请求接口数据,get请求使用getForObject()方法,post请求使用postForObject()方法。接受数据之后用过json映射到实体类和集合中返回。

post请求数据接收

post接口

    @PostMapping("/getAccountInfo")
    public RestReturn<ThirdUserInfoDTO> getAccountInfo(@RequestBody @Validated LoginDTO loginDTO){
        ThirdUserInfoDTO thirdUserInfoDTO = thirdService.getAccountInfo(loginDTO);
        //判断用户是否存在,及获取所属组织信息
        return new RestReturn().success(thirdUserInfoDTO, RestReturnEnum.SUCCESS.getMessage());
    }

RestTemplate请求post接口数据,返回类型为ThirdUserInfoDTO对象

 esultOrgListDTO> currentOrgs(LoginDTO loginDTO) {
        //获取当前用户信息,loginDTO为请求参数,String.class为返回类型
        String s = restTemplate.postForObject("http://10.136.88.94:8091/api/3rd/getAccountInfo",         loginDTO, String.class);
        JSONObject jsonObject = JSONObject.parseObject(s);
        String data = jsonObject.getString("data");
    
        //对象接受json数据
        ThirdUserInfoDTO thirdUserInfoDTO= JSON.parseObject(jsonObject.getString("data"), new           TypeReference<ThirdUserInfoDTO>(){});
        if(ObjectUtils.isEmpty(thirdUserInfoDTO)){
            throw new CustomException(RestReturnEnum.USERINFO_NOT_EXISTED);
        }
        List<ResultOrgListDTO> orgs = thirdUserInfoDTO.getOrgs();
        return orgs;
    }

get接口

    @GetMapping("/nodeInfo/{orgId}")
    public RestReturn<List<ThirdNodeInfoDTO>> nodeInfoByOrgId(@ApiParam(value = "组织id",required = true) @PathVariable("orgId") Long orgId){
        //根据组织id获取节点信息
        List<ThirdNodeInfoDTO> nodes = thirdService.nodeInfoByOrgId(orgId);
        return new RestReturn().success(nodes, RestReturnEnum.SUCCESS.getMessage());
    }

RestTemplate请求get接口数据,返回类型为List集合

    @Override
    public List<ThirdNodeInfoDTO> currentOrgNodes(Long orgId) {
        List<ThirdNodeInfoDTO> list =new ArrayList<>();
        String s = restTemplate.getForObject("http://10.136.88.94:8091/api/3rd/nodeInfo/{orgId}",String.class,orgId);
        //拿到json对象数组
        JSONArray jsonArray  = JSONObject.parseObject(s).getJSONArray("data");
        //循环将json对象数组放到对象中
        jsonArray.forEach(x ->{
            ThirdNodeInfoDTO thirdNodeInfoDTO =JSONObject.toJavaObject((JSON) x ,ThirdNodeInfoDTO.class);
            if(thirdNodeInfoDTO!=null){
                list.add(thirdNodeInfoDTO);
            }
        });
        return list;
    }

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微信小程序封装get和post请求接口可以提高开发效率和代码复用性。我们可以创建一个封装网络请求的工具类,定义两个方法,分别用于发送get请求post请求。 首先,我们创建一个util.js文件,定义一个request方法,用于发送请求。该方法接收四个参数:url(请求地址)、method(请求方法,可选值为'GET'或'POST')、data(请求参数,可选值为空对象{})、header(请求头部信息,可选值为{"content-type": "application/json"})。在该方法内部,首先使用wx.request方法发送请求,并将参数传入request方法中。然后在success和fail回调方法中,分别处理请求成功和请求失败的情况。对于请求成功的情况,可以使用Promise封装处理成功的状态,将返回数据传递给then方法。对于请求失败的情况,可以使用Promise封装处理失败的状态,将失败的信息传递给catch方法。 在util.js文件中,我们定义两个方法:get和post,分别用于发送get请求post请求。在这两个方法内部,我们直接调用request方法,并传递相应的参数。对于get请求,我们将method设置为'GET',将data设置为空对象,即可发送get请求。对于post请求,我们将method设置为'POST',将data设置为我们要发送的参数,即可发送post请求。 使用封装的get和post请求接口,可以简化我们发送网络请求的代码。只需在需要发送请求的地方,引入封装的util.js文件,调用相应的get或post方法,并传递相应的参数即可。 通过封装get和post请求接口,我们可以实现网络请求的复用,提高开发效率,并且可以统一处理请求成功和失败的情况,使代码更加简洁和可维护。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值