1.接口返回值枚舉定義
/**
*接口返回枚舉定義
*/
public enum RestCodeEnum {
SUCCESS("200", "處理成功"),
ERROR("500", "系統(tǒng)異常");
private String code;
private String msg;
RestCodeEnum(String code, String msg) {
this.code = code;
this.msg = msg;
}
public String getCode() {
return code;
}
public String getMsg() {
return msg;
}
}
2.異常信息拋出返回值定義
public class RestException extends RuntimeException {
private static final long serialVersionUID = -649224303322031383L;
private RestCodeEnum retCode;
public RestException() {
super();
}
public RestException(RestCodeEnum retCode) {
super(retCode.getMsg());
this.retCode = retCode;
}
public RestException(RestCodeEnum retCode, String msg) {
super(msg);
this.retCode = retCode;
}
public RestCodeEnum getRetCode() {
return this.retCode;
}
public void setRetCode(RestCodeEnum retCode) {
this.retCode = retCode;
}
}
3.接口統(tǒng)一返回參數(shù)定義
@Slf4j
public abstract class BaseController {
public static final String CODE = "code";
public static final String MSG = "msg";
public static final String DATA = "data";
protected static String success() {
final Map<String, Object> result = Maps.newHashMap();
result.put(CODE, RestCodeEnum.SUCCESS.getCode());
result.put(MSG, RestCodeEnum.SUCCESS.getMsg());
return JSON.toJSONString(result);
}
protected static String success(Object data) {
final Map<String, Object> result = Maps.newHashMap();
result.put(CODE, RestCodeEnum.SUCCESS.getCode());
result.put(MSG, RestCodeEnum.SUCCESS.getMsg());
result.put(DATA, data);
return JSON.toJSONString(result);
}
protected static String error(RestCodeEnum code) {
final Map<String, Object> result = Maps.newHashMap();
result.put(CODE, code.getCode());
result.put(MSG, code.getMsg());
return JSON.toJSONString(result);
}
protected static String error(RestCodeEnum code, String msg) {
final Map<String, Object> result = Maps.newHashMap();
result.put(CODE, code.getCode());
result.put(MSG, msg);
return JSON.toJSONString(result);
}
}
4.增加全局異常
/**
* 全局異常處理器
*/
@RestControllerAdvice
@Slf4j
public class GlobalExceptionHandler extends BaseController {
/**
* 基礎(chǔ)異常
*/
@ExceptionHandler(RestException.class)
public String baseException(RestException e) {
return error(e.getRetCode(), e.getMessage());
}
}
5.實(shí)例
/**
* 直接使用error僵驰、success 需要繼承 BaseController
*/
@RestController
@RequestMapping("/dataProcessing")
public class DataProcessingController extends BaseController {
@Resource
private JdbcTemplate jdbcTemplate;
@PostMapping("/deleteSource")
public String deleteSource(@RequestBody JSONObject body) {
String sqlCode = body.getString("sqlCode");
if (StringUtils.isBlank(sqlCode)) {
throw new RestException(RestCodeEnum.ERROR);//異常信息直接拋出
}
if (jdbcTemplate.update("UPDATE `data_sql` SET `status` = '0' where `sql_code` = '" + sqlCode + "';") > 0) {
return success();//成功信息返回
}
return error(RestCodeEnum.ERROR);//錯(cuò)誤信息返回
}
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者