多平台统一管理软件接口,如何实现多平台统一管理软件接口
329
2022-09-03
SpringBoot 统一公共返回类的实现
目录项目结构统一返回类使用
本文记录下如何在工程中,配置后台的统一公共返回类,这样做目的是wHbpn为了统一返回信息,方便项目进行管理。使用技术:SpringBoot+Swagger+Lombok
项目结构
具体过程如下,在response文件夹下分别建立 CustomizeResultCode 接口,枚举类ResultCode 实现CustomizeResultCode 接口和Result类:
1 配置自定义返回类接口,该接口中包含 错误状态码和错误信息
public interface CustomizeResultCode {
/*
获取错误码
@return 错误状态码
*/
Integer getCode();
/*
获取错误信息
@return 错误信息
*/
String getMessage();
}
2 配置返回实现类,注意这里是个枚举类,里面的编码仅供参考,可以自定义
/**
* @Description: 返回码定义
* 规定:
* #200表示成功
* #400表示错误
* #1001~1999 区间表示参数错误
* #2001~2999 区间表示用户错误
* #3001~3999 区间表示接口异常
* #后面对什么的操作自己在这里注明就行了
*/
public enum ResultCode implements CustomizeResultCode{
/* 成功 */
SUCCESS(200, "成功"),
/*错误*/
ERROR(400,"错误失败"),
/* 默认失败 */
COMMON_FAIL(999, "失败"),
/* 参数错误:1000~1999 */
PARAM_NOT_VALID(1001, "参数无效"),
PARAM_IS_BLANK(1002, "参数为空"),
/* 用户错误 */
USER_NOT_LOGIN(2001, "用户未登录"),
USER_ACCOUNT_EXPIRED(2002, "账号已过期"),
USER_CREDENTIALS_ERROR(2003, "密码错误"),
/*运行时异常*/
ARITHMETIC_EXCEPTION(9001,"算数异常");
;
private Integer code;
private String message;
ResultCode(Integer code,String message){
this.code=code;
this.message=message;
}
@Override
public Integer getCode() {
return code;
}
@Override
public String getMessage() {
return message;
}
}
3 定义具体的返回类方法
@Data
public class Result {
@ApiModelProperty(value = "是否成功")
private Boolean success;
@ApiModelProperty (value= "返回码")
private Integer code;
@ApiModelProperty(value = "返回消息")
private String message;
@ApiModelProperty(value = "返回数据")
private Map
/*
构造方法私有化,里面的方法都为静态方法
达到保护属性的作用
*/
private Result(){
}
/*
使用链式编程
该部分在项目组中一般是项目组长写好的
*/
public static Result ok(){
Result result=new Result();
result.setSuccess(true);
result.setCode(ResultCode.SUCCESS.getCode());
result.setMessage(ResultCode.SUCCESS.getMessage());
return result;
}
public static Result error(){
Result result=new Result();
result.setSuccess(false);
result.setCode(ResultCode.ERROR.getCode());
result.setMessage(ResultCode.ERROR.getMessage());
return result;
}
/*
自定义返回成功与否
*/
public Result success(Boolean success){
this.setSuccess(success);
return this;
}
public Result message(String message){
this.setMessage(message);
return this;
}
public Result code(Integer code){
this.setCode(code);
return this;
}
public Result data(String key,Object value){
this.data.put(key,value);
return this;
}
public Result data(Map
this.setData(map);
return this;
}
}
统一返回类使用
Controller在下面的文件中
@RestController
@EnableAutoConfiguration
@RequestMapping("/system/info")
@Api(value = "系统模块",tags="系统接口")
public class DController {
@Autowired
private DService dService;
@GetMapping
@ApiOperation(value = "信息列表",notes = "查询所有信息")
public Result findDs(){
List
//链式编程
return Result.ok().data("users",list);
}
}
测试结果成功
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~