問題1: 在spring boot 實作的微服務架構中,各個服務之間的資料互動問題
說明
比如在服务架构中两个服务之间的交互,服务A中有一个数据model, 服务B调用后,服务A 将此类型的模型返回给服务B , 服务B中就必须也定义一个这样的数据模型才能正确的接收数据这样会造成类的多次定义?
問題2:在spring中使用restful返回客戶端資料時,會進行模型轉json操作,但是物件中定義了很多屬性,而客戶端只需要其中部分屬性對應的值,那麼如何在返回客戶端之前將其中不需要的或無值的屬性剔除?
答1:
RPC通訊的資料傳輸格式常用的有 json、xml 或 自訂的二進位格式,一般都會事先約定好。
既然都是不同的服務,一般都是不同的團隊來維護的。再說解析接收物件的類別不一定要完全與輸出物件一致。
答2:
一種做法是輸出對象定義必要屬性,將你的中間對象轉換成最終要輸出的對象,去除多餘屬性。
或在物件轉json的時候剔除多餘屬性,spring 中提供了 @JsonIgnore 註解,對 bean 的多餘屬性加入該註解後,轉換json物件時,就會忽略該屬性。
Q1: bean可以定義在一個獨立的module中, 服務A和服務B都依賴這個module即可。
Q2: json註解忽略或採用dto的方式,只取得所需的屬性。