restful 接口 復(fù)雜對(duì)象入?yún)?/h1>

前言:

? ? ? ? ? 前端技術(shù)框架層出不窮日新月異,很多公司都招了一些專業(yè)前端人員來編寫頁面,服務(wù)端只做好業(yè)務(wù)邏輯和數(shù)據(jù)存儲(chǔ)。前后端分離使得各自更加專注自己善長的領(lǐng)域但也有很多不是所謂的坑等著我們。

問題:

?? ? ?公司服務(wù)端是通過springboot提供restful接口,前端是react js 通過http請(qǐng)求服務(wù)端。當(dāng)接口參數(shù)是一個(gè)復(fù)雜對(duì)象通過對(duì)象傳輸服務(wù)端無法接收到對(duì)象中的值

案例一

接口:

參數(shù):

問題:

? ? ? ? ?evalAnswerDOs 始終是個(gè)空對(duì)象。

解決方案:

? ? ? 前端:1.設(shè)置http請(qǐng)求頭 ?Content-Type:application/json; charset=utf-8

服務(wù)端:

接口參數(shù) 增加@RequestBody注解 表示接收的是一個(gè)Json對(duì)象, 增加consumes表示以當(dāng)請(qǐng)求的HTTP 頭是何種格式的時(shí)候進(jìn)行應(yīng)對(duì)

案例二

接口:

入?yún)ⅲ?/p>

? ? ?MerItemDO merItemDO ?對(duì)象

? ? ?String operatorId

? ? ? String operatorName

問題:

? ? ? ? operatorId 和operatorName ?的值服務(wù)端能正常接收,merItemDO對(duì)象屬性里面的值始終都是null

解決方案

第一種:

? ? ?將3個(gè)參數(shù)封裝成一個(gè)對(duì)象 如案例一通過 application/json的方式解決

第二種:

? ? ?將 operatorId和 operatorName 當(dāng)作 path 傳入

前端

? ? 第一種: ?見案例一

? ? ? 第二種: 前端無需改動(dòng)

服務(wù)端

? ? ?第一種:見案例一

? ? ?第二種:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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