Java介面統一樣式返回模板的實現
阿新 • • 發佈:2020-01-07
前言
一開始,我們在寫專案的時候,前端要什麼資料,我們就返回什麼資料,每個介面也都寫得不一樣很亂;隨著前後端的分離;對於程式碼規範的要求也越來越嚴謹;介面都是統一樣式的返回模板;
下面,接受一種我之前用過的返回模板;
一、首先來看下我們的Controller介面
/** * 獲取使用者資訊 * @param token 微信登入者token * @param id 商品id * @return 商品詳細資訊 */ @PostMapping(value = "getUserInfo") @ResponseBody public ResultResponse getUserInfo( @RequestParam(value = "token") String token){ ResultResponse result = new ResultResponse(); //這裡獲取使用者資訊的類就不貼出來了 User user = userService.getUserByToken(token); result.setData(user ); return result.setStatus(ResponseCode.SUCCESS); }
我們可以看出,介面返回的是ResultResponse類;下面來剖析這個類;
二、統一樣式返回模板ResultResponse剖析
2.1ResultResponse類:
package com.himo.common; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonInclude; import lombok.Data; /** * @Author: laixiansong * @Description: http請求 * @Vesion: 1.0.0 * @Date: 2017/10/17 */ @Data public class ResultResponse<T> { /** 錯誤碼 */ private Integer code; /** 錯誤資訊 */ private String msg; @JsonInclude(JsonInclude.Include.NON_NULL) private T data; public void setData(T data) { this.data = data; } public ResultResponse setStatus(ResponseCode responseCode){ this.code = responseCode.getCode(); this.msg = responseCode.getDesc(); return this; } public String getMsg() { return msg; } }
ResultResponse類包含了錯誤碼、錯誤資訊、返回的物件json;
2.2列舉類
從ResultResponse類中我們可以看出,錯誤碼和錯誤資訊是一一對應的,我們用一個列舉類ResponseCode來封裝;
ResponseCode:
package com.himo.common; /** * @Author: laixiansong * @Description: * @Vesion: 1.0.0 * @Date: 2017/10/17 */ public enum ResponseCode { SUCCESS(0,"SUCCESS"),ERROR(1,"ERROR"),REQUEST_PARAMS_ERROR(1003,"請求引數錯誤"),NOT_WX_LOGIN(1004,"非微信端登入"),WX_LOGIN_PARAMS_ERROR(1005,"微信登入code錯誤"),NO_LOGIN(1006,"登入狀態失效"),; private final int code; private final String desc; ResponseCode(int code,String desc){ this.code = code; this.desc = desc; } public int getCode() { return code; } public String getDesc() { return desc; } }
我們可以在列舉類中加入我們想要增加的錯誤資訊和錯誤碼;
這樣就是一個完成的Java介面返回的模板了;
總結
技術在不斷更新換代,但是它的基礎沒有變,要想更好的維護專案,使得程式碼更加的美觀和正規,所有介面統一返回統一類是非常有必要的;
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。