現(xiàn)在開發(fā)過程中主要采用前后端分離的方式進(jìn)行開發(fā)測(cè)試,也就是前端封裝請(qǐng)求,后端提供標(biāo)準(zhǔn)的API接口服務(wù)。一般現(xiàn)在json 格式受到開發(fā)者們的青睞,學(xué)習(xí)過程中我們可以設(shè)置接口的返回類型,那么怎么做到設(shè)置統(tǒng)一的返回格式呢?以下是在項(xiàng)目開發(fā)過程中一般的模式標(biāo)準(zhǔn):
1、一般springboot?我們使用?SpringBoot
進(jìn)行開發(fā)時(shí),當(dāng)我們引入?spring-boot-starter-web
場景啟動(dòng)器后,該場景中就包含了?jackson
依賴,不需要再額外導(dǎo)入,并且默認(rèn)開啟了注解掃描驅(qū)動(dòng);但是springmvc 則?引入支持json 的jar?
2、請(qǐng)求Controller ,設(shè)置json 格式的請(qǐng)求,一般使用RESTController 注解,這個(gè)注解s是?@Controller
和?@ResponseBody
注解的結(jié)合體,具有相同的作用,該注解只能標(biāo)志在類上。
3、封裝統(tǒng)一的返回對(duì)象格式,一般我們有幾個(gè)關(guān)鍵項(xiàng),code,msg,data ,如下:
public class ResponseResult<T> {
?
? ? /**
? ? ?* 狀態(tài)碼
? ? ?*/
? ? private Integer code;
?
? ? /**
? ? ?* 提示信息,如果有錯(cuò)誤時(shí),前端可以獲取該字段進(jìn)行提示
? ? ?*/
? ? private String msg;
?
? ? /**
? ? ?* 返回的結(jié)果數(shù)據(jù)
? ? ?*/
? ? private T data;
?
? ? private ResponseResult() {
?
? ? }
?
? ? public ResponseResult(Integer code, String msg) {
? ? ? ? this.code = code;
? ? ? ? this.msg = msg;
? ? }
?
? ? public ResponseResult(Integer code, String msg, T data) {
? ? ? ? this.code = code;
? ? ? ? this.msg = msg;
? ? ? ? this.data = data;
? ? }
?
? ? public Integer getCode() {
? ? ? ? return code;
? ? }
?
? ? public void setCode(Integer 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) {
? ? ? ? this.data = data;
? ? }
?
}
-----------------使用枚舉設(shè)置返回狀態(tài)碼及已知類型----------------
public enum ResultCode {
? ? /**
? ? ?* 通用狀態(tài)碼
? ? ?*/
? ? SUCCESS(1,"OK"),
? ? FAILED(-1,"FAIL"),
? ? /*
? ? 參數(shù)錯(cuò)誤狀態(tài)碼
? ? ?*/
? ? PARAM_IS_INVAlID(101,"參數(shù)無效"),
? ? PARAM_IS_BLANK(101,"參數(shù)為空"),
? ? /* 用戶錯(cuò)誤 ?201 - 299 ?*/
? ? USER_NOT_LOGIN(201,"未登錄"),
? ? USER_NOT_EXIST(202,"用戶不存在"),
? ? USER_LOGIN_ERROR(203,"登陸失敗,賬號(hào)或者密碼有誤"),
? ? NOT_PERMISSION(204,"無權(quán)限訪問"),
? ? /* 業(yè)務(wù)錯(cuò)誤 301 - 399*/
? ? DATA_NOT_FOUND(301,"沒有數(shù)據(jù)");
?
? ? //返回狀態(tài)碼
? ? private Integer code;
?
? ? //返回消息
? ? private String msg;
?
? ? private ResultCode() {
? ??
? ? }
? ??
? ? ResultCode(Integer code, String msg) {
? ? ? ? this.code = code;
? ? ? ? this.msg = msg;
? ? }
?
? ? public Integer getCode() {
? ? ? ? return code;
? ? }
?
? ? public void setCode(Integer code) {
? ? ? ? this.code = code;
? ? }
?
? ? public String getMsg() {
? ? ? ? return msg;
? ? }
?
? ? public void setMsg(String msg) {
? ? ? ? this.msg = msg;
? ? }
}
通過在ResponseResult添加一般的返回方法設(shè)置類
public static <T> ResponseResult<T> setCommonStatusAndData(ResultCode resultCode, T data){
? ? return new ResponseResult<>(resultCode.getCode(), resultCode.getMsg(),data);
}
?
public static ResponseResult setCommonStatusNoData(ResultCode resultCode){
? ? return new ResponseResult<>(resultCode.getCode(), resultCode.getMsg());
}
我們的開發(fā)接口服務(wù)時(shí)可以進(jìn)行使用一般
public?ResponseResult<T> getApi(輸入?yún)?shù)){
? ? 。。。。。。。。。。。。。。。。。
? ? return?new ResponseResult<>(code, msg, data);
? ? //或者使用
? ? return ResponseResult.setCommonStatusAndData(ResultCode.SUCCESS,user)文章來源:http://www.zghlxwxcb.cn/news/detail-648592.html
}文章來源地址http://www.zghlxwxcb.cn/news/detail-648592.html
到了這里,關(guān)于Springboot 設(shè)置統(tǒng)一的請(qǐng)求返回格式的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!