Java接口統(tǒng)一樣式返回模板的實(shí)現(xiàn)
前言
一開始,我們?cè)趯戫?xiàng)目的時(shí)候,前端要什么數(shù)據(jù),我們就返回什么數(shù)據(jù),每個(gè)接口也都寫得不一樣很亂;隨著前后端的分離;對(duì)于代碼規(guī)范的要求也越來(lái)越嚴(yán)謹(jǐn);接口都是統(tǒng)一樣式的返回模板;
下面,接受一種我之前用過的返回模板;
一、首先來(lái)看下我們的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(); //這里獲取用戶信息的類就不貼出來(lái)了 User user = userService.getUserByToken(token); result.setData(user ); return result.setStatus(ResponseCode.SUCCESS); }
我們可以看出,接口返回的是ResultResponse類;下面來(lái)剖析這個(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請(qǐng)求 * @Vesion: 1.0.0 * @Date: 2017/10/17 */ @Data public class ResultResponse<T> { /** 錯(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ò)誤信息、返回的對(duì)象json;
2.2枚舉類
從ResultResponse類中我們可以看出,錯(cuò)誤碼和錯(cuò)誤信息是一一對(duì)應(yīng)的,我們用一個(gè)枚舉類ResponseCode來(lái)封裝;
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,"請(qǐng)求參數(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)一類是非常有必要的;
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
idea設(shè)置@Author文件頭注釋的實(shí)現(xiàn)步驟
本文主要介紹了idea設(shè)置@Author文件頭注釋的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07Java LinkedList的實(shí)現(xiàn)原理圖文詳解
今天小編就為大家分享一篇關(guān)于Java LinkedList的實(shí)現(xiàn)原理圖文詳解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-01-01Java實(shí)現(xiàn)儲(chǔ)存對(duì)象并按對(duì)象某屬性排序的幾種方法示例
這篇文章主要介紹了Java實(shí)現(xiàn)儲(chǔ)存對(duì)象并按對(duì)象某屬性排序的幾種方法,結(jié)合實(shí)例形式詳細(xì)分析了Java儲(chǔ)存對(duì)象并按對(duì)象某屬性排序的具體實(shí)現(xiàn)方法與操作注意事項(xiàng),需要的朋友可以參考下2020-05-05SpingMvc復(fù)雜參數(shù)傳收總結(jié)
這篇文章主要為大家介紹了SpingMvc復(fù)雜參數(shù)傳收總結(jié),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08詳解Springboot-MyBatis配置-配置端口號(hào)與服務(wù)路徑(idea社區(qū)版2023.1.4+apache-mav
這篇文章主要介紹了Springboot-MyBatis配置-配置端口號(hào)與服務(wù)路徑(idea社區(qū)版2023.1.4+apache-maven-3.9.3-bin),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07java讀取http請(qǐng)求中的body實(shí)例代碼
下面小編就為大家?guī)?lái)一篇java讀取http請(qǐng)求中的body實(shí)例代碼。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2016-09-09使用Autowired為什么會(huì)被IDEA警告最佳修改方法
這篇文章主要介紹了使用Autowired為什么會(huì)被IDEA警告,應(yīng)該怎么修改最佳,除了使用@Autowired以外,我們其實(shí)也有幾種好用的方式,使用@Resource替代@Autiwired方法是其中一種,只需要改變一個(gè)注解,這里就不展示了,需要的朋友可以參考下2023-02-02Java實(shí)現(xiàn)對(duì)中文字符串的排序功能實(shí)例代碼
這篇文章主要介紹了Java實(shí)現(xiàn)中文字符串的排序功能實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2016-04-04