多平台统一管理软件接口,如何实现多平台统一管理软件接口
585
2022-11-25
java方法通用返回结果集封装操作
我们在封装方法的时候,有的时候除了需要返回数据结果集data,有的时候需要返回code(或者status) 或者 msg ,
此时可以采取下面两种方式进行封装方法的返回值:
一.返回结果使用HashMap接收
1.方法中的数据封装到hashmap中
public Map
{
Map
result.put("status", "1");
result.put("msg", "成功");
if(条件1不通过校验)
{
result.put("status", "-1");
result.put("msg", "....");
return result;
}
if(条件2不通过校验)
{
result.put("status", "-1");
result.put("msg", "....");
return result;
}
//封装返回数据
Object data = new Object();
result.put("data", data);
return result;
}
2.方法调用:
public void test()
{
Map
if(!"1".equals(result.get("status").toString()))
{
//校验不通过
return;
}else
{
//如果校验通过,拿到数据
Object data = result.get("data");
//TODO
}
}
二.使用泛型对象接收
1.通用结果集封装
public class Result
{
private static final String SUCCESS = "1";
private static final String FAIL = "0";
private String code;
private String msg;
private T Data;
public Result(String code)
{
this.code = code;
}
public Result(String code, String msg)
{
super();
this.code = code;
this.msg = msg;
}
public Result(String code, String msg, T data)
{
super();
this.code = code;
this.msg = msg;
Data = data;
}
public String getCode()
{
return code;
}
public void setCode(String code)
{
this.code = code;
}
public String getMsg()
{
return msg;
}
public void setMsg(String msg)
{
this.msg = msg;
}
public T getData()
{
return Data;
}
public void setData(T data)
{
Data = data;
}
public static
{
return new Result
}
public static
{
return new Result
}
public static
{
return new Result
}
public static
{
return new Result
}
public static
{
return new Result
}
public static
{
return new Result
}
public boolean isOk()
{
return Result.equals(getCode());
}
}
2.对应需要返回数据T data 的 方法
public Result
{
if(条件1不通过校验)
{
return Result.nok("。。。");;
}
if(条件2不通过校验)
{
WxUZPLOS return Result.nok("。。。");;
}
return Result.ok(T);
}
3.方法调用:
public void test
{
Result
if(!result.isOk())
{
//校验不通过
return;
}else
{
//如果校验通过,拿到数据
Object data = result.getData();
//TODO
}
}
补充知识:java后端封装标准返回类到前端
在日常开发中,我们后端和前端最好是约定一个数据格式,用于后端封装好数据,然后返回前端,前端就可以很简单地就解析了,下面是我总结出来经常会那么用的模板,可以参考一下:
1、创建对象
直接在实体包下面新建一个ReturnParam对象,对象内容包括了是否成功标记、list结果集合、total总数(用于前端分页)还有可拓展的其他对象,直接看代码吧:
import java.util.List;
/**
* @Author: John
* @Description: 返回前端的统一对象
* @Date: 2019/8/3 10:03
* @param: null
* @return:
*/
public class ReturnParam
private Boolean success; //请求是否成功
private List
private int total; //结果的总条数
private Object obj; //其他的对象,可以使用Map
public Boolean getSuccess() {
return success;
}
public void setSuccess(Boolean success) {
this.success = success;
}
public List
return list;
}
public void setList(List
this.list = list;
}
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
public Object getObj() {
return obj;
}
public void setObj(Object obj) {
this.obj = obj;
}
}
2、调用
在代码中调用就会使用下面的格式调用,下面附上我的一个小例子:
package com.tw.controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @Author: John
* @Description: 用于测试WxUZPLOS的接口
* @Date: 2019/8/2 21:44
* @param: null
* @return:
*/
@RequestMapping("/debug")
@Controller
public class DebugController {
//日志
private static Logger logger = LoggerFactory.getLogger(DebugController.class);
@GetMapping("/test")
public ReturnParam test() {
logger.info("============调用debug的test方法");
//List集合中的数据
List
things.add("apple");
things.add("pear");
things.add("banana");
//添加其他类型1
Map
sort.put("sort", "fruit");
//添加其他类型的数据2
String nama = "John";
int age = 27;
//声明Object对象,并用于装其他的东西
Map
objectMap.put("sort", sort);
objectMap.put("name", nama);
objectMap.put("age", age);
ReturnParam returnParam = new ReturnParam();
returnParam.setSuccess(true);
returnParam.setList(things);
returnParam.setTotal(things.size());
//obj用于装qita类型的数据统一返回到前端
returnParam.setObj(objectMap);
return returnParam;
}
}
3、返回
查看返回前端的数据格式,很干净,很舒服,很符合有强迫症的程序员观看:
4、结语:
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~