簡體   English   中英

如何使用同一個域模型的多個“視圖”?

[英]How to work with multiple 'views' of the same domain model?

我正在使用Jackson來解析android應用程序的JSON。 我也打算在REST服務器中使用它,所以我將在客戶端和服務器之間共享我的模型。

我創建了一個POJO來建模域對象“ Friend”。 當客戶端獲取https://www.myserver.com/api/1/friend/1234時,我想返回ID為1234的序列化Friend,也許缺少一兩個字段。

但是,當客戶端獲取https://www.myserver.com/api/1/friend/時,我想返回所有好友對象,但是數據較少,可能更適合搜索結果(例如,名字,姓氏)和個人資料圖片,但不包括他們的朋友列表,出生日期等)。

我在這里應該遵循哪種模式,以便可以根據訪問方式以不同的方式表示相同的基礎模型?

繼承可以與@JsonIgnoreProperties一起使用。

您可以擁有Friend類,並將其擴展以限制要序列化的屬性。

@JsonIgnoreProperties({ "friends", "dateOfBirth" })
class RestrictedFriend extends Friend {

}

看看是否要使用繼承。 有一個基類,它具有要與所有人共享的字段,還有一個子類,它具有更多的受限數據。 有兩個JSON API,一個用於公共信息,一個用於公共+安全信息,並根據調用的API序列化基類或子類對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM