一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|JavaScript|易語(yǔ)言|

服務(wù)器之家 - 編程語(yǔ)言 - Java教程 - java api返回值的標(biāo)準(zhǔn)化詳解

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

2021-07-20 16:07張占嶺(倉(cāng)儲(chǔ)大叔,Lind) Java教程

這篇文章主要介紹了java api返回值的標(biāo)準(zhǔn)化詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

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

例如

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

封裝返回對(duì)象

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

封裝的返回對(duì)象:

?
1
2
3
4
5
6
7
8
9
10
@builder
@getter
@noargsconstructor
@allargsconstructor
static class responsebody {
 
private int status;
private string message;
private object data;
}

httperror和我們封裝的httperror

對(duì)于http error來(lái)說(shuō)有很多種,基本可以定為code在400到500之間的,像客戶端參數(shù)問(wèn)題就是400- bad request,而沒(méi)有認(rèn)證就是401-unauthorized,認(rèn)證但沒(méi)有對(duì)應(yīng)的權(quán)限就是403-forbidden,請(qǐng)求的
資源沒(méi)有發(fā)現(xiàn)就是404-not found,請(qǐng)求方式錯(cuò)誤(方法是post,你發(fā)起請(qǐng)求用了get)就是405- method not allowed等。

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
@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é)果

?
1
2
3
4
5
6
7
8
9
mockhttpservletresponse:
   status = 400
 error message = null
   headers = {}
  content type = null
    body =
 forwarded url = null
 redirected url = null
   cookies = []

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@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é)果

?
1
2
3
4
5
6
7
8
9
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 = []

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

總結(jié)

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

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

原文鏈接:https://www.cnblogs.com/lori/p/10494923.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: xx18美女美国 | 国产一级大片免费看 | 全是女性放屁角色的手游 | 日本精品一卡二卡≡卡四卡 | 99福利网| 冰漪丰满大乳人体图片欣赏 | 国产在线观看91精品一区 | 亚洲国产精品ⅴa在线观看 亚洲国产高清一区二区三区 | 欧美激情精品久久久久久不卡 | 好男人在线观看免费高清2019韩剧 | 精品久久久久久无码人妻国产馆 | 日本一区二区三区久久精品 | 亚洲高清免费在线观看 | 亚洲午夜精品久久久久 | 男人j放进女人的p视频免费 | 网址在线观看你懂我意思吧免费的 | 情侣宾馆愉拍自拍视频 | 成年人免费在线看 | 91tm视频| 久久中文字幕亚洲精品最新 | 国产精品视频久久久久 | 国产成人小视频在线观看 | 成年男女免费视频网站 | 明星ai智能人脸替换造梦在线播放 | 国产成人综合精品一区 | 欧美在线国产 | 免费午夜影片在线观看影院 | 99视频都是精品热在线播放 | 国产一区二 | 亚洲视频中文字幕 | 国产外围| 天堂8在线天堂bt | 韩国理论片最新第一页 | 欧美又大又粗又爽视频 | 高h短篇辣肉各种姿势bl | 亚洲精品国产福利片 | 波多野结衣中文字幕乱七八糟 | 王淑兰李思雨李铁柱乡村小说免费 | 欧美日韩国产亚洲一区二区 | 青青青手机视频 | 亚洲一二三区视频 |