第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

REST API - DTO或不是?

REST API - DTO或不是?

浮云間 2019-08-09 16:17:44
REST API - DTO或不是?我目前正在為一個項目創(chuàng)建一個REST-API,并且正在閱讀關(guān)于最佳實踐的文章。許多人似乎反對DTO,只是暴露域模型,而其他人似乎認為DTO(或用戶模型或任何你想稱之為的)是不好的做法。就個人而言,我認為這篇文章很有意義。但是,我也理解DTO的缺點,包括所有額外的映射代碼,可能與其DTO對應(yīng)物100%相同的域模型等等。我們的API主要是為了讓其他客戶端可以使用數(shù)據(jù)而創(chuàng)建的,但是如果我們做得對,我們也希望盡可能將它用于我們自己的Web GUI。問題是我們可能不希望將所有域數(shù)據(jù)公開給其他客戶端用戶。大部分數(shù)據(jù)只在我們自己的Web應(yīng)用程序中才有意義。此外,我們可能不希望在所有方案中公開有關(guān)對象的所有數(shù)據(jù),尤其是與其他對象的關(guān)系等。例如,如果我們公開特定對象的列表,我們不一定要暴露整個對象層次結(jié)構(gòu); 這樣對象的孩子就不會暴露,但可以通過鏈接(hateoas)發(fā)現(xiàn)。我該如何解決這個問題?我正在考慮在我們的域模型上使用Jackson mixins來控制在給定不同場景的情況下會暴露哪些數(shù)據(jù)。或者我們應(yīng)該一直使用DTO - 即使考慮到它的缺點和爭議?
查看完整描述

3 回答

?
溫溫醬

TA貢獻1752條經(jīng)驗 獲得超4個贊

當您的API是公開的并且您必須支持多個版本時,您必須使用DTO。

另一方面,如果它是私有API并且您同時控制客戶端和服務(wù)器,我傾向于跳過DTO并直接暴露域模型。


查看完整回答
反對 回復 2019-08-09
?
尚方寶劍之說

TA貢獻1788條經(jīng)驗 獲得超4個贊

我傾向于使用DTO。

我不喜歡這些缺點,但似乎其他選擇更糟糕:

域?qū)ο蟮恼故究赡軙е掳踩珕栴}和數(shù)據(jù)泄漏。杰克遜的注釋似乎可以解決這個問題,但是很容易犯錯誤并暴露不應(yīng)該暴露的數(shù)據(jù)。在設(shè)計DTO課程時,犯這樣的錯誤要困難得多。

另一方面,DTO方法的缺點可以通過對象映射和Lombok等較少的樣板來減少。


查看完整回答
反對 回復 2019-08-09
  • 3 回答
  • 0 關(guān)注
  • 1023 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號