多态工具类——来完成微服务接口响应
使用工具类来完成接口响应,可以简化开发代码,让人阅读起来更加流畅。
先上代码
package com.qut.base;
import org.springframework.stereotype.Component;
import com.qut.constants.Constants;
import lombok.Data;
@Data
public class BaseApiService<T> {
public BaseResponse<T> setResultError(Integer code, String msg) {
return setResult(code, msg, null);
}
/**
* 返回错误,可以传msg
*
* @param msg
* @return
*/
public BaseResponse<T> setResultError(String msg) {
return setResult(Constants.HTTP_RES_CODE_500, msg, null);
}
/***
* 返回成功,可以传data值
* @param data
* @return
*/
public BaseResponse<T> setResultSuccess(T data) {
return setResult(Constants.HTTP_RES_CODE_200, Constants.HTTP_RES_CODE_200_VALUE, data);
}
/**
* 返回成功,沒有data值
*
* @return
*/
public BaseResponse<T> setResultSuccess() {
return setResult(Constants.HTTP_RES_CODE_200, Constants.HTTP_RES_CODE_200_VALUE, null);
}
/**
* 通用封装 通用封装
*
* @param code
* @param msg
* @param data
* @return
*/
public BaseResponse<T> setResult(Integer code, String msg, T data) {
return new BaseResponse<T>(code, msg, data);
}
}
/*
-----------------------------------两个类的分割线
*/
package com.qut.base;
import lombok.Data;
@Data
public class BaseResponse<T> {
/**
* 返回码
*/
private Integer code;
/**
* 消息
*/
private String msg;
/**
* 返回
*/
private T data;
// 分页
public BaseResponse() {
}
public BaseResponse(Integer code, String msg, T data) {
super();
this.code = code;
this.msg = msg;
this.data = data;
}
}
/*
常量定义类
*/
package com.qut.constants;
public interface Constants {
// 响应请求成功
String HTTP_RES_CODE_200_VALUE = "success";
// 系统错误
String HTTP_RES_CODE_500_VALUE = "fail";
// 响应请求成功code
Integer HTTP_RES_CODE_200 = 200;
// 系统错误
Integer HTTP_RES_CODE_500 = 500;
}
如何使用该类
使用的时候,直接继承该类即可,例如下面代码:
public class ServiceImpl extends BaseApiService {
@Override
public BaseResponse<String> addInfo(String appId, String appPwd) {
if(StringUtils.isEmpty(appId)){
return setResultError("id不能为空");
}
return setResultSuccess("成功");
}
public BaseResponse<String> test(String testId){
return setResultError("dd");
}
}