接口文檔 - java后臺接口怎么方便返回restful數(shù)據(jù)
問題描述
在使用spring mvc的情況下,你們傳給前端(ios/android)的json數(shù)據(jù)由spring對Bean進行轉(zhuǎn)換的吧?那個這個Bean,都是定義好的java類?
因為感覺前端需要的json非常靈活,后臺如果用幾個大而全的bean來封裝,前端會得到許多無用的字段。(雖然可以控制序列化策略,讓null值甚至是默認值的字段不出現(xiàn)在json中,但這樣一來,字段不全,閱讀性差些。)而如果精細化bean,則需要創(chuàng)建太多的bean。
我們項目中基本采用map來構(gòu)造需要的數(shù)據(jù)(主要也是因為用的jdbctemplate,查詢出來的數(shù)據(jù)就是map類型的),不用定義bean類,雖然很靈活,但經(jīng)常要手寫key名,也是麻煩所在。
大家都怎么解決的?請不吝指教,謝謝!
問題解答
回答1:直接使用Spring WebMVC 的Controller 上面,增加 @ResponseBody 返回POJO
回答2:以前也是采用Map的方式進行組合數(shù)據(jù),但是手寫Key名確實很麻煩,而且很容易出錯,這就是所謂的魔術(shù)值,應該盡量避免的。后來都改用小而美的bean,每個接口對應一個bean,雖然數(shù)量比較多,但是耦合性比建立大而全的bean更松散,修改bean不會影響其他接口,還是可以接受的,不知道有沒有其他更優(yōu)雅的方案。
相關(guān)文章:
1. javascript - 微信網(wǎng)頁開發(fā)從菜單進入頁面后,按返回鍵沒有關(guān)閉瀏覽器而是刷新當前頁面,求解決?2. mysql replace 死鎖3. android - 安卓做前端,PHP做后臺服務器 有什么需要注意的?4. mysql - ubuntu開啟3306端口失敗,有什么辦法可以解決?5. 求救一下,用新版的phpstudy,數(shù)據(jù)庫過段時間會消失是什么情況?6. extra沒有加載出來7. python3.x - Python not 運算符的問題8. python - 數(shù)據(jù)與循環(huán)次數(shù)對應不上9. mysql - C#連接數(shù)據(jù)庫時一直這一句出問題int i = cmd.ExecuteNonQuery();10. python小白,關(guān)于函數(shù)問題
