前言
成都創(chuàng)新互聯(lián)專注骨干網(wǎng)絡(luò)服務(wù)器租用10多年,服務(wù)更有保障!服務(wù)器租用,四川移動(dòng)機(jī)房托管 成都服務(wù)器租用,成都服務(wù)器托管,骨干網(wǎng)絡(luò)帶寬,享受低延遲,高速訪問。靈活、實(shí)現(xiàn)低成本的共享或公網(wǎng)數(shù)據(jù)中心高速帶寬的專屬高性能服務(wù)器。
一開始,我們在寫項(xiàng)目的時(shí)候,前端要什么數(shù)據(jù),我們就返回什么數(shù)據(jù),每個(gè)接口也都寫得不一樣很亂;隨著前后端的分離;對于代碼規(guī)范的要求也越來越嚴(yán)謹(jǐn);接口都是統(tǒng)一樣式的返回模板;
下面,接受一種我之前用過的返回模板;
一、首先來看下我們的Controller接口
/** * 獲取用戶信息 * @param token 微信登入者token * @param id 商品id * @return 商品詳細(xì)信息 */ @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類;下面來剖析這個(gè)類;
二、統(tǒng)一樣式返回模板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{ /** 錯(cuò)誤碼 */ private Integer code; /** 錯(cuò)誤信息 */ 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類包含了錯(cuò)誤碼、錯(cuò)誤信息、返回的對象json;
2.2枚舉類
從ResultResponse類中我們可以看出,錯(cuò)誤碼和錯(cuò)誤信息是一一對應(yīng)的,我們用一個(gè)枚舉類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,"請求參數(shù)錯(cuò)誤"), NOT_WX_LOGIN(1004,"非微信端登錄"), WX_LOGIN_PARAMS_ERROR(1005,"微信登錄code錯(cuò)誤"), NO_LOGIN(1006,"登錄狀態(tài)失效"), ; 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; } }
我們可以在枚舉類中加入我們想要增加的錯(cuò)誤信息和錯(cuò)誤碼;
這樣就是一個(gè)完成的Java接口返回的模板了;
總結(jié)
技術(shù)在不斷更新?lián)Q代,但是它的基礎(chǔ)沒有變,要想更好的維護(hù)項(xiàng)目,使得代碼更加的美觀和正規(guī),所有接口統(tǒng)一返回統(tǒng)一類是非常有必要的;
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。