最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot統(tǒng)一API響應(yīng)結(jié)果封裝的示例詳解

 更新時(shí)間:2025年03月27日 09:15:01   作者:青燈文案  
在Spring Boot項(xiàng)目中,統(tǒng)一API響應(yīng)結(jié)果封裝是一種常用的技術(shù)實(shí)踐,旨在提高開發(fā)效率、降低代碼重復(fù)率,并提供一致的API響應(yīng)格式,從而簡化前后端交互和錯(cuò)誤處理,感興趣的小伙伴可以了解下

封裝內(nèi)容

響應(yīng)結(jié)果封裝是將后端服務(wù)返回的響應(yīng)數(shù)據(jù)按照統(tǒng)一的格式進(jìn)行封裝,這個(gè)格式通常包括狀態(tài)碼、狀態(tài)信息(或稱為消息)、返回?cái)?shù)據(jù)等關(guān)鍵信息。

  • 狀態(tài)碼(Code):表示請求的處理結(jié)果,如成功、失敗、特定錯(cuò)誤等。狀態(tài)碼通常是一組預(yù)定義的整數(shù)或枚舉值。
  • 狀態(tài)信息/消息(Message):與狀態(tài)碼相對應(yīng)的文本描述,用于提供關(guān)于請求處理結(jié)果的更多信息。
  • 返回?cái)?shù)據(jù)(Data):實(shí)際業(yè)務(wù)處理的結(jié)果數(shù)據(jù),其類型可能因API而異。

此外,有些封裝還會(huì)包含時(shí)間戳、請求ID等附加信息,以便于日志追蹤和問題排查。

封裝示例

1、Result

package com.wen.data;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 統(tǒng)一 API 響應(yīng)結(jié)果封裝
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Result<T> {

    private int code;

    private String message;

    private T data;

    public Result<T> setCode(ResultCode resultCode) {
        this.code = resultCode.code;
        this.message = resultCode.message;
        return this;
    }

    public Result<T> setMessage(String message) {
        this.message = message;
        return this;
    }

    public Result<T> setData(T data) {
        this.data = data;
        return this;
    }
}

2、ResultCode

package com.wen.data;

/**
 * 響應(yīng)碼枚舉
 */

public enum ResultCode {

    // 這里可以根據(jù)多個(gè)場景設(shè)置不同的響應(yīng)碼,供前端判斷問題并進(jìn)行解釋
    SUCCESS(1,"SUCCESS"),

    FAIL(400,"FAIL"),

    NOT_FOUND(401,"interface not found"),

    ERROR(500,"System Exception!");

    public int code;

    public String message;

    ResultCode(int code, String message){
        this.code = code;
        this.message = message;
    }
}

3、ResultGenerator

package com.wen.data;

/**
 * 響應(yīng)結(jié)果生成
 */

public class ResultGenerator {

    public static Result<?> genSuccessResult(){
        return new Result<>().setCode(ResultCode.SUCCESS);
    }

    public static Result<?> genSuccessResult(Object data){
        return new Result<>().setCode(ResultCode.SUCCESS).setData(data);
    }

    public static Result<?> genFailResult(String message){
        return new Result<>().setCode(ResultCode.FAIL).setMessage(message);
    }

    public static Result<?> genSpecialResult(ResultCode resultCode, String message){
        return new Result<>().setCode(resultCode).setMessage(message);
    }
}

4、TestController

package com.wen.controller;

import com.wen.data.Result;
import com.wen.data.ResultGenerator;
import com.wen.dto.TbUser;
import com.wen.service.TestService;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/test")
public class TestController {

    @Autowired
    private TestService testService;

    @GetMapping("/select")
    public Result<?> selectUserByPage(
    				@Param("pageSize") Integer pageSize, 
    				@Param("pageNumber") Integer pageNumber){
    	// 生成結(jié)果
        return ResultGenerator.genSuccessResult(testService.selectUserByPage(pageSize, pageNumber));
    }
}

5、生成結(jié)果

{
    "code": 1,
    "message": "SUCCESS",
    "data": "2024-07-19"
}

以上就是SpringBoot統(tǒng)一API響應(yīng)結(jié)果封裝的示例詳解的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot統(tǒng)一API響應(yīng)結(jié)果的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • SpringMVC實(shí)現(xiàn)賬號(hào)只能在一處登陸

    SpringMVC實(shí)現(xiàn)賬號(hào)只能在一處登陸

    這篇文章主要為大家詳細(xì)介紹了SpringMVC如何實(shí)現(xiàn)賬號(hào)只能在一處登陸,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • Java基于Tcp/ip連接的多人交互聊天室

    Java基于Tcp/ip連接的多人交互聊天室

    這篇文章主要為大家詳細(xì)介紹了Java基于Tcp/ip連接的多人交互聊天室,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • 在eclipse中修改tomcat的部署路徑操作

    在eclipse中修改tomcat的部署路徑操作

    這篇文章主要介紹了在eclipse中修改tomcat的部署路徑操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • resty client使用Java客戶端來訪問Api

    resty client使用Java客戶端來訪問Api

    這篇文章主要介紹了resty-client使用Java客戶端來訪問Api的驗(yàn)證權(quán)限,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-03-03
  • Springboot項(xiàng)目啟動(dòng)時(shí)端口被占用的問題及解決

    Springboot項(xiàng)目啟動(dòng)時(shí)端口被占用的問題及解決

    這篇文章主要介紹了Springboot項(xiàng)目啟動(dòng)時(shí)端口被占用的問題及解決,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-05-05
  • Java獲取七牛云存儲(chǔ)空間中圖片外鏈

    Java獲取七牛云存儲(chǔ)空間中圖片外鏈

    本文主要介紹了Java獲取七牛云存儲(chǔ)空間中圖片外鏈,需要獲取在七牛云中存儲(chǔ)的所有圖片,并返回外鏈地址,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-10-10
  • kafka生產(chǎn)實(shí)踐(詳解)

    kafka生產(chǎn)實(shí)踐(詳解)

    下面小編就為大家?guī)硪黄猭afka生產(chǎn)實(shí)踐(詳解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-08-08
  • Java注釋和關(guān)鍵字實(shí)例詳解

    Java注釋和關(guān)鍵字實(shí)例詳解

    注釋是對程序語言的說明,有助于開發(fā)者和用戶之間的交流,方便理解程序,注釋不是編程語句,因此被編譯器忽略,下面這篇文章主要給大家介紹了關(guān)于Java注釋和關(guān)鍵字的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • 詳談@Autowired和static的關(guān)系

    詳談@Autowired和static的關(guān)系

    這篇文章主要介紹了@Autowired和static的關(guān)系,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • java設(shè)計(jì)模式之中介者模式

    java設(shè)計(jì)模式之中介者模式

    這篇文章主要為大家詳細(xì)介紹了java設(shè)計(jì)模式之中介者模式,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-08-08

最新評論

昌邑市| 美姑县| 康平县| 壤塘县| 武汉市| 磴口县| 临潭县| 伊金霍洛旗| 紫云| 东源县| 新竹县| 当涂县| 柳江县| 邢台市| 交口县| 彩票| 厦门市| 永胜县| 泊头市| 长海县| 宝坻区| 石景山区| 崇明县| 惠水县| 霍邱县| 吉安县| 东安县| 东平县| 扎赉特旗| 舒城县| 陆川县| 保康县| 贵港市| 高阳县| 凤凰县| 庆安县| 乌鲁木齐市| 禄丰县| 桐城市| 原阳县| 佛教|