首页 新闻 会员 周边 捐助

前端访问rest获取的response的body是被赋值的?

0
悬赏园豆:5 [已解决问题] 解决于 2018-07-30 11:21

自己实现了一个rest接口,供本地访问。

但是当在页面端的js里打上断点查看数据的时候发现response的body中的数据和我在后台发挥的数据data是一致的。

在下面前后端代码中吧操作的返回值data, status, rowCount列出来了。

要问的问题是,response里面的body为什么和我返回的data属性值一致,而不是和其他的一致?

 

后台是通过java语言实现的, 如下:

@RequestMapping(value = "/query" , method = RequestMethod.GET)
@ResponseBody

public Map<String, Object> queryList(HttpServletRequest request) {

  .......

   ResponseEntity<QueryEntity> response = getObjectByRest(url, QueryEntity.class, req , getMthod);

Map<String, Object> res = new HashMap<String, Object>();
CommMsgEntity msg = new CommMsgEntity();

log.info("response: " + response);

if(null != response){
int statusCode = response.getStatusCode().value();
if(200 == statusCode) {
msg.setStatus(CommMsgEntity.COMM_SUCCESS);
}else {
msg.setStatus(CommMsgEntity.COMM_Fail);
}
res.put("status", msg);
res.put("data", response.getBody().getData());
res.put("rowCount", response.getBody().getSize());
}else {
msg.setStatus(CommMsgEntity.COMM_Fail);
res.put("status", msg);
res.put("data", null);
res.put("rowCount", 0);
}
return res;

}

前端语言使用的是vue,访问接口使用的vue-resource插件 ,页面详情如图:

JRay的主页 JRay | 初学一级 | 园豆:74
提问于:2018-06-06 16:13
< >
分享
最佳答案
0

接口返回的就是一个json数据, 一致难道不对吗?接口返回的数据 格式,都是你们接口封装好的,具体什么格式全看你们后台接口数据怎么封装,

收获园豆:5
、熙和 | 小虾三级 |园豆:1508 | 2018-06-06 16:47

在问题里已经把操作的返回值data, status, rowCount列出来了,请认真看问题,谢谢。

要问的问题是,response里面的body为什么和我返回的data属性值一致,而不是和其他的一致?

JRay | 园豆:74 (初学一级) | 2018-06-06 18:59

@JRay: 请您真的理解了,再说话, 你截图response这里面的数据, 格式, 都是你们程序封装的,
key body的值为什么 和 key data的值一样, 请去看看你们程序里面怎么set的body这个key

、熙和 | 园豆:1508 (小虾三级) | 2018-06-06 20:25

@、熙和: 不清楚你为什么这么自信说这些。总之会就帮帮忙解决一下,不会就等着其他会的人来解答一同学习一下。

其次,由于这个工程是新搭建的,这是第一个rest方法所以你说的封装是有,但没有包含处理response body的 至于引用的其它的开源插件是否有,我也不清楚,所以来这里问。总之你要会,就帮忙解决一下,肯定是心怀感谢的。不会麻烦别捣乱,也是很谢谢的。

JRay | 园豆:74 (初学一级) | 2018-06-06 20:36

@JRay: 你这个数据是后端接口返的, 和前端插件应该没关系,如果你不能确定是否前端插件的关系,直接调用接口看一下返回数据格式;
你截图给的后台接口代码来看,如果没有封装的话,你前端接收到的response对象应该是有status,data,rowCount这三个属性
所以我才说返回的数据有什么不对吗????,你去看看你们代码里,哪里对这个进行过处理
rest接口也是接口,只不过对接口名做了一些规范,我只是觉得身为后端程序员,接口的返回值要是控制不了.....有点不应该

、熙和 | 园豆:1508 (小虾三级) | 2018-06-06 22:57

@、熙和: status,data,rowCount 这三个是我控制返回的,他们没问题。

      但是前端页面的返回值里面为什么多了一个body?.................................

     还是上完整源码吧。

Map<String, Object> res = new HashMap<String, Object>();
CommMsgEntity msg = new CommMsgEntity();

log.info("response: " + response);

if(null != response){
int statusCode = response.getStatusCode().value();
if(200 == statusCode) {
msg.setStatus(CommMsgEntity.COMM_SUCCESS);
}else {
msg.setStatus(CommMsgEntity.COMM_Fail);
}
res.put("status", msg);
res.put("data", response.getBody().getData());
res.put("rowCount", response.getBody().getSize());
}else {
msg.setStatus(CommMsgEntity.COMM_Fail);
res.put("status", msg);
res.put("data", null);
res.put("rowCount", 0);
}
return res;

JRay | 园豆:74 (初学一级) | 2018-06-07 10:13

@JRay: 建议你直接调接口看看返回的json数据是什么?

、熙和 | 园豆:1508 (小虾三级) | 2018-06-07 12:52
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册