SpringMVC返回結(jié)果的封裝

我們在寫Restful Api時躏尉,經(jīng)常需要返回這種結(jié)構(gòu)的數(shù)據(jù):

{
  "code": 0,
  "data": {},
  "msg": "",
  "error": ""
}

? 其中code方便我們判斷操作是否成功艺谆,復雜一點可以作為操作碼弊决,封裝錯誤類型窑邦,比如401為登錄過期擅威,當然這不是本文的重點,不做過多描述冈钦。data為我們實際需要的數(shù)據(jù)郊丛,msg和error都是附帶的信息,其實可以只要一個瞧筛,這里完全看個人喜好宾袜,我是把錯誤信息都放到error里面,操作成功需要附帶信息的話驾窟,放到msg里面庆猫。

? 需要說明的是,SpringMVC里面ResponseEntity已經(jīng)實現(xiàn)了這個功能绅络,而且還更加強大月培,比可以設置header之類的。而大部分情況我們只需要這一簡單功能恩急,所以我封裝了一個工具類杉畜,并且在前兩個項目中都用得比較滿意。先貼上主要代碼:

/**
 * Created by wolf on 2017/9/16.
 */
public class  Res<T> {

    private int code = 0;
    private T data;
    private String msg = "";
    private String error = "";

    public static Res ok = new Res();
    public static Res fail = new Res().code(-1);

    public static Res build() {
        return new Res();
    }

    public static <T> Res build(T data){
        return new Res().data(data);
    }

    public Res code(int code) {
        this.code = code;
        return this;
    }

    public Res data(T data) {
        this.data = data;
        return this;
    }

    public Res msg(String msg) {
        this.msg = msg;
        return this;
    }

    public Res error(String error) {
        this.error = error;
        return this;
    }
    //省略getter
}

? data為泛型衷恭,可以是各種你想要的類型此叠。然后對于setter,直接返回this來實現(xiàn)鏈式調(diào)用随珠。提供兩個build方法灭袁,這里作用并不大,僅僅是不想去寫new窗看。在開發(fā)過程中茸歧,其實我們大部分情況下只需要知道操作是否成功,所以這里就單獨定義了兩個靜態(tài)實例显沈,ok的code為0软瞎,表示操作成功逢唤,fail為操作失敗。這段代碼比較基礎涤浇,也沒啥好說的鳖藕。下面再簡單的列幾個使用的代碼吧。

@RestController
@RequestMapping("/xxx")
public class XxxController{
    
    @GetMapping
    public Res<Xxx> getXxx(){
        Xxx xxx = new Xxx();
        return Res.build(xxx);
        // return Res.ok.data(xxx).msg("獲取成功");
        // return Res.fail.error("獲取失斨欢А吊奢!");
        // return Res.fail.code(401).error("登錄過期!");
    }
}

? 然后纹烹,沒有然后了页滚,就是這么簡單。最近太無聊铺呵,改bug(漫無邊際的優(yōu)化)簡直想吐裹驰,前兩天買了一堆配件組了臺主機,然而打游戲也打不動了片挂!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末幻林,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子音念,更是在濱河造成了極大的恐慌沪饺,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,843評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件闷愤,死亡現(xiàn)場離奇詭異整葡,居然都是意外死亡,警方通過查閱死者的電腦和手機讥脐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,538評論 3 392
  • 文/潘曉璐 我一進店門遭居,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人旬渠,你說我怎么就攤上這事俱萍。” “怎么了告丢?”我有些...
    開封第一講書人閱讀 163,187評論 0 353
  • 文/不壞的土叔 我叫張陵枪蘑,是天一觀的道長。 經(jīng)常有香客問我岖免,道長岳颇,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,264評論 1 292
  • 正文 為了忘掉前任觅捆,我火速辦了婚禮赦役,結(jié)果婚禮上麻敌,老公的妹妹穿的比我還像新娘栅炒。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 67,289評論 6 390
  • 文/花漫 我一把揭開白布赢赊。 她就那樣靜靜地躺著乙漓,像睡著了一般。 火紅的嫁衣襯著肌膚如雪释移。 梳的紋絲不亂的頭發(fā)上叭披,一...
    開封第一講書人閱讀 51,231評論 1 299
  • 那天,我揣著相機與錄音玩讳,去河邊找鬼涩蜘。 笑死,一個胖子當著我的面吹牛熏纯,可吹牛的內(nèi)容都是我干的同诫。 我是一名探鬼主播,決...
    沈念sama閱讀 40,116評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼樟澜,長吁一口氣:“原來是場噩夢啊……” “哼误窖!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起秩贰,我...
    開封第一講書人閱讀 38,945評論 0 275
  • 序言:老撾萬榮一對情侶失蹤霹俺,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后毒费,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體丙唧,經(jīng)...
    沈念sama閱讀 45,367評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,581評論 2 333
  • 正文 我和宋清朗相戀三年觅玻,在試婚紗的時候發(fā)現(xiàn)自己被綠了艇棕。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,754評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡串塑,死狀恐怖沼琉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情桩匪,我是刑警寧澤打瘪,帶...
    沈念sama閱讀 35,458評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站傻昙,受9級特大地震影響闺骚,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜妆档,卻給世界環(huán)境...
    茶點故事閱讀 41,068評論 3 327
  • 文/蒙蒙 一僻爽、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧贾惦,春花似錦胸梆、人聲如沸敦捧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,692評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽兢卵。三九已至,卻和暖如春绪颖,著一層夾襖步出監(jiān)牢的瞬間秽荤,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,842評論 1 269
  • 我被黑心中介騙來泰國打工柠横, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留窃款,地道東北人。 一個月前我還...
    沈念sama閱讀 47,797評論 2 369
  • 正文 我出身青樓牍氛,卻偏偏與公主長得像雁乡,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子糜俗,可洞房花燭夜當晚...
    茶點故事閱讀 44,654評論 2 354

推薦閱讀更多精彩內(nèi)容

  • error code(錯誤代碼)=0是操作成功完成踱稍。error code(錯誤代碼)=1是功能錯誤。error c...
    Heikki_閱讀 3,379評論 1 9
  • error code(錯誤代碼)=2000是無效的像素格式悠抹。error code(錯誤代碼)=2001是指定的驅(qū)動...
    Heikki_閱讀 1,798評論 0 4
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,085評論 25 707
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理珠月,服務發(fā)現(xiàn),斷路器楔敌,智...
    卡卡羅2017閱讀 134,654評論 18 139
  • 海報清新脫俗啤挎,兩個女孩笑得那樣甜。但其實看過電影才知道她們經(jīng)歷過了什么卵凑? 《鬼鄉(xiāng)》是根據(jù)日本軍慰安婦受害者姜日出老...
    好好女士萱閱讀 1,394評論 10 9