接口文檔 - java后臺(tái)接口怎么方便返回restful數(shù)據(jù)
問(wèn)題描述
在使用spring mvc的情況下,你們傳給前端(ios/android)的json數(shù)據(jù)由spring對(duì)Bean進(jìn)行轉(zhuǎn)換的吧?那個(gè)這個(gè)Bean,都是定義好的java類(lèi)?
因?yàn)楦杏X(jué)前端需要的json非常靈活,后臺(tái)如果用幾個(gè)大而全的bean來(lái)封裝,前端會(huì)得到許多無(wú)用的字段。(雖然可以控制序列化策略,讓null值甚至是默認(rèn)值的字段不出現(xiàn)在json中,但這樣一來(lái),字段不全,閱讀性差些。)而如果精細(xì)化bean,則需要?jiǎng)?chuàng)建太多的bean。
我們項(xiàng)目中基本采用map來(lái)構(gòu)造需要的數(shù)據(jù)(主要也是因?yàn)橛玫膉dbctemplate,查詢(xún)出來(lái)的數(shù)據(jù)就是map類(lèi)型的),不用定義bean類(lèi),雖然很靈活,但經(jīng)常要手寫(xiě)key名,也是麻煩所在。
大家都怎么解決的?請(qǐng)不吝指教,謝謝!
問(wèn)題解答
回答1:直接使用Spring WebMVC 的Controller 上面,增加 @ResponseBody 返回POJO
回答2:以前也是采用Map的方式進(jìn)行組合數(shù)據(jù),但是手寫(xiě)Key名確實(shí)很麻煩,而且很容易出錯(cuò),這就是所謂的魔術(shù)值,應(yīng)該盡量避免的。后來(lái)都改用小而美的bean,每個(gè)接口對(duì)應(yīng)一個(gè)bean,雖然數(shù)量比較多,但是耦合性比建立大而全的bean更松散,修改bean不會(huì)影響其他接口,還是可以接受的,不知道有沒(méi)有其他更優(yōu)雅的方案。
相關(guān)文章:
1. mysql - sql 左連接結(jié)果union右連接結(jié)果,導(dǎo)致重復(fù)性計(jì)算怎么解決?2. 網(wǎng)頁(yè)爬蟲(chóng) - python 爬取網(wǎng)站 并解析非json內(nèi)容3. mysql 遠(yuǎn)程連接出錯(cuò)10060,我已經(jīng)設(shè)置了任意主機(jī)了。。。4. 默認(rèn)輸出類(lèi)型為json,如何輸出html5. 數(shù)組排序,并把排序后的值存入到新數(shù)組中6. php多任務(wù)倒計(jì)時(shí)求助7. mysql怎么表示兩個(gè)字段的差8. javascript - 滾動(dòng)到指定高度 開(kāi)始輪流放動(dòng)畫(huà),QQPC官網(wǎng)就是這么做的,請(qǐng)問(wèn)使用什么開(kāi)源庫(kù)方便點(diǎn)?9. PHP訂單派單系統(tǒng)10. MySQL的聯(lián)合查詢(xún)[union]有什么實(shí)際的用處
