自己实现了一个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插件 ,页面详情如图:
接口返回的就是一个json数据, 一致难道不对吗?接口返回的数据 格式,都是你们接口封装好的,具体什么格式全看你们后台接口数据怎么封装,
在问题里已经把操作的返回值data, status, rowCount列出来了,请认真看问题,谢谢。
要问的问题是,response里面的body为什么和我返回的data属性值一致,而不是和其他的一致?
@JRay: 请您真的理解了,再说话, 你截图response这里面的数据, 格式, 都是你们程序封装的,
key body的值为什么 和 key data的值一样, 请去看看你们程序里面怎么set的body这个key
@、熙和: 不清楚你为什么这么自信说这些。总之会就帮帮忙解决一下,不会就等着其他会的人来解答一同学习一下。
其次,由于这个工程是新搭建的,这是第一个rest方法所以你说的封装是有,但没有包含处理response body的 至于引用的其它的开源插件是否有,我也不清楚,所以来这里问。总之你要会,就帮忙解决一下,肯定是心怀感谢的。不会麻烦别捣乱,也是很谢谢的。
@JRay: 你这个数据是后端接口返的, 和前端插件应该没关系,如果你不能确定是否前端插件的关系,直接调用接口看一下返回数据格式;
你截图给的后台接口代码来看,如果没有封装的话,你前端接收到的response对象应该是有status,data,rowCount这三个属性
所以我才说返回的数据有什么不对吗????,你去看看你们代码里,哪里对这个进行过处理
rest接口也是接口,只不过对接口名做了一些规范,我只是觉得身为后端程序员,接口的返回值要是控制不了.....有点不应该
@、熙和: 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: 建议你直接调接口看看返回的json数据是什么?