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

java api返回值的標(biāo)準(zhǔn)化詳解

 更新時間:2019年03月08日 17:05:32   作者:張占嶺(倉儲大叔,Lind)  
這篇文章主要介紹了java api返回值的標(biāo)準(zhǔn)化詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

api返回值的標(biāo)準(zhǔn)化

例如

{"status":200,"message":"操作成功","data":"{\"id\":1,\"name\":\"張三\"}"}

封裝返回對象

對象被封裝在base.util.ResponseUtils類型下,返回值是標(biāo)準(zhǔn)的ResponseEntity對象,返回體進(jìn)行了二次封裝,主要有status,messsagedata組成,返回方法有ok和okMessage,如果真是返回消息,不需要對象,可以選擇使用okMessage,反之使用ok方法。

封裝的返回對象:

 @Builder
 @Getter
 @NoArgsConstructor
 @AllArgsConstructor
 static class ResponseBody {

 private int status;
 private String message;
 private Object data;
 }

httpError和我們封裝的httpError

對于http error來說有很多種,基本可以定為code在400到500之間的,像客戶端參數(shù)問題就是400- bad request,而沒有認(rèn)證就是401-Unauthorized,認(rèn)證但沒有對應(yīng)的權(quán)限就是403-Forbidden,請求的
資源沒有發(fā)現(xiàn)就是404-Not Found,請求方式錯誤(方法是post,你發(fā)起請求用了get)就是405- Method Not Allowed等。

使用標(biāo)準(zhǔn)http響應(yīng)狀態(tài)碼

 @GetMapping(GET_HTTP_ERROR)
 ResponseEntity<?> getHttpError() throws IOException {
 return ResponseEntity.badRequest().build();
 }
 @Test
 public void getHttpError() throws Exception {
  mockMvc
   .perform(
    get(LindDemo.GET_HTTP_ERROR)
     .accept(MediaType.APPLICATION_JSON_UTF8))
   .andExpect(status().is(400));
 
 }

響應(yīng)的結(jié)果

MockHttpServletResponse:
   Status = 400
 Error message = null
   Headers = {}
  Content type = null
    Body = 
 Forwarded URL = null
 Redirected URL = null
   Cookies = []

使用我們封裝的status狀態(tài)碼

 @GetMapping(GET_ERROR)
 ResponseEntity<?> getError() throws IOException {
 return ResponseUtils.badRequest("傳入的參數(shù)非法!");
 }
 
 @Test
 public void getError() throws Exception {
  mockMvc
   .perform(
    get(LindDemo.GET_ERROR)
     .accept(MediaType.APPLICATION_JSON_UTF8))
   .andExpect(status().isOk());
 
 }

響應(yīng)的結(jié)果

MockHttpServletResponse:
   Status = 200
 Error message = null
   Headers = {Content-Type=[application/json;charset=UTF-8]}
  Content type = application/json;charset=UTF-8
    Body = {"status":400,"message":"傳入的參數(shù)非法!","data":{}}
 Forwarded URL = null
 Redirected URL = null
   Cookies = []

通過上面的響應(yīng)結(jié)果可以看到,我們封裝的請求httpcode還是200,只不過把請求錯誤400狀態(tài)碼寫在了body
對象里,目前這種方法用的比較多,像一些第三方接口用的都是這種方式,他們會規(guī)定相應(yīng)的響應(yīng)規(guī)范。

總結(jié)

事實上,兩種響應(yīng)體都沒有問題,關(guān)鍵在于開發(fā)之間的規(guī)則要確定,不要在項目里兩者兼用!

以上所述是小編給大家介紹的java api返回值的標(biāo)準(zhǔn)化詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Java實現(xiàn)迅雷地址轉(zhuǎn)成普通地址實例代碼

    Java實現(xiàn)迅雷地址轉(zhuǎn)成普通地址實例代碼

    本篇文章主要介紹了Java實現(xiàn)迅雷地址轉(zhuǎn)成普通地址實例代碼,非常具有實用價值,有興趣的可以了解一下。
    2017-03-03
  • Spring Boot 與 Kotlin 使用JdbcTemplate連接MySQL數(shù)據(jù)庫的方法

    Spring Boot 與 Kotlin 使用JdbcTemplate連接MySQL數(shù)據(jù)庫的方法

    本文介紹在Spring Boot基礎(chǔ)下配置數(shù)據(jù)源和通過 JdbcTemplate 編寫數(shù)據(jù)訪問的示例。感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧
    2018-01-01
  • 如何解決java.lang.NoClassDefFoundError:Could not initialize class java.awt.Color問題

    如何解決java.lang.NoClassDefFoundError:Could not initi

    文章講述了在Java服務(wù)器中處理圖形元素時遇到的常見問題,即需要運行X-server,通過在Tomcat/bin/catalina.sh中增加JAVA_OPTS環(huán)境變量并設(shè)置-Djava.awt.headless=true,可以解決這個問題,使服務(wù)器能夠在沒有圖形界面的情況下運行
    2024-11-11
  • java多線程中斷代碼詳解

    java多線程中斷代碼詳解

    這篇文章主要介紹了java多線程中斷代碼詳解,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • Java中的Lambda表達(dá)式及其應(yīng)用小結(jié)

    Java中的Lambda表達(dá)式及其應(yīng)用小結(jié)

    Java中的Lambda表達(dá)式是一項極具創(chuàng)新性的特性,它使得Java代碼更加簡潔和高效,尤其是在集合操作和并行處理方面,這篇文章主要介紹了Java中的Lambda表達(dá)式及其應(yīng)用,需要的朋友可以參考下
    2025-04-04
  • java基于OpenGL ES實現(xiàn)渲染實例

    java基于OpenGL ES實現(xiàn)渲染實例

    這篇文章主要介紹了java基于OpenGL ES實現(xiàn)渲染,實例分析了OpenGL渲染操作的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06
  • java網(wǎng)絡(luò)編程之群聊功能

    java網(wǎng)絡(luò)編程之群聊功能

    這篇文章主要為大家詳細(xì)介紹了java網(wǎng)絡(luò)編程之群聊功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • 基于Java的界面開發(fā)詳細(xì)步驟(用戶注冊登錄)

    基于Java的界面開發(fā)詳細(xì)步驟(用戶注冊登錄)

    通過一段時間Java Web的學(xué)習(xí),寫一個簡單的注冊登陸界面來做個總結(jié),這篇文章主要給大家介紹了基于Java的界面開發(fā)(用戶注冊登錄)的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • Java substring原理及使用方法實例

    Java substring原理及使用方法實例

    這篇文章主要介紹了Java substring原理及使用方法實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • Java的LinkedHashSet源碼深入講解

    Java的LinkedHashSet源碼深入講解

    這篇文章主要介紹了Java的LinkedHashSet源碼深入講解,LinkedHashSet是HashSet的子類,而由于HashSet實現(xiàn)了Set接口,因此LinkedHashSet也間接實現(xiàn)了Set類,LinkedHashSet類屬于java.base模塊,java.util包下,需要的朋友可以參考下
    2023-09-09

最新評論

友谊县| 河南省| 邯郸县| 永昌县| 城固县| 惠来县| 苏尼特左旗| 明水县| 龙陵县| 浠水县| 浮山县| 台湾省| 新沂市| 大关县| 荣昌县| 甘德县| 洪洞县| 太湖县| 青阳县| 鄢陵县| 乌鲁木齐市| 永善县| 刚察县| 达尔| 凤城市| 兰州市| 日照市| 三门县| 怀仁县| 鄂伦春自治旗| 定边县| 湘乡市| 鞍山市| 美姑县| 肥东县| 长子县| 甘孜县| 玉环县| 无极县| 邢台县| 永宁县|