亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

封裝內(nèi)容

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

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

此外,有些封裝還會包含時間戳、請求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ù)多個場景設(shè)置不同的響應(yīng)碼,供前端判斷問題并進行解釋
    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é)果封裝的示例詳解的詳細內(nèi)容,更多關(guān)于SpringBoot統(tǒng)一API響應(yīng)結(jié)果的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • java通過poi解析word入門的操作方法

    java通過poi解析word入門的操作方法

    Apache POI 是一個處理Miscrosoft Office各種文件格式的開源項目,可以使用POI在Java程序中對Miscrosoft Office各種文件進行讀寫操作,本文給大家介紹java通過poi解析word入門的操作方法,感興趣的朋友一起看看吧
    2024-08-08
  • JAVA8?Stream流中的reduce()方法詳解

    JAVA8?Stream流中的reduce()方法詳解

    reduce 操作可以實現(xiàn)從Stream中生成一個值,其生成的值不是隨意的,而是根據(jù)指定的計算模型,這篇文章主要介紹了JAVA8?Stream流中的reduce()方法詳解,需要的朋友可以參考下
    2023-02-02
  • 淺析Java集合中的LinkedHashSet

    淺析Java集合中的LinkedHashSet

    這篇文章主要介紹了淺析Java集合中的LinkedHashSet,LinkedHashSet?是?Java?中的一個集合類,它是?HashSet?的子類,并實現(xiàn)了?Set?接口,與?HashSet?不同的是,LinkedHashSet?保留了元素插入的順序,并且具有?HashSet?的快速查找特性,需要的朋友可以參考下
    2023-09-09
  • ssh框架實現(xiàn)文件上傳下載實例代碼

    ssh框架實現(xiàn)文件上傳下載實例代碼

    本篇文章主要介紹了ssh框架文件上傳下載實例代碼,實例分析了Spring+struts+Hibernate的使用技巧,非常具有實用價值,需要的朋友可以參考下。
    2017-03-03
  • logback輸出日志屏蔽quartz的debug等級日志方式

    logback輸出日志屏蔽quartz的debug等級日志方式

    這篇文章主要介紹了logback輸出日志屏蔽quartz的debug等級日志方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Mybatis插件+注解實現(xiàn)數(shù)據(jù)脫敏方式

    Mybatis插件+注解實現(xiàn)數(shù)據(jù)脫敏方式

    這篇文章主要介紹了Mybatis插件+注解實現(xiàn)數(shù)據(jù)脫敏方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • 利用Java8 Optional類優(yōu)雅如何地解決空指針問題

    利用Java8 Optional類優(yōu)雅如何地解決空指針問題

    這篇文章主要給大家介紹了關(guān)于如何利用Java8 Optional類優(yōu)雅解決空指針問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Java通過SSM完成水果商城批發(fā)平臺流程

    Java通過SSM完成水果商城批發(fā)平臺流程

    這是一個使用了java+SSM開發(fā)的網(wǎng)上水果商城批發(fā)平臺,是一個實戰(zhàn)小練習(xí),具有水果商城批發(fā)該有的所有功能,感興趣的朋友快來看看吧
    2022-06-06
  • 如何在Mac下配置多個Java版本

    如何在Mac下配置多個Java版本

    這篇文章主要介紹了如何在Mac下配置多個Java版本以及需要注意的點詳細說明,需要的朋友參考下步驟吧。
    2018-02-02
  • Mockito 結(jié)合 Springboot 進行應(yīng)用測試的方法詳解

    Mockito 結(jié)合 Springboot 進行應(yīng)用測試的方法詳解

    這篇文章主要介紹了Mockito 結(jié)合 Springboot 進行應(yīng)用測試的方法詳解,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11

最新評論