2017-04-17 19 views
0

を無視し、私は、フィールドの下でEmployeeDTO.java私は特定の要件を持っている特定の特性、条件DTO

ような単一のPOJOを有します。私は社員、CREATEDBY、createdTimestamp、updatedBy、updatedTimestampのような任意のフィールドを取得するべきではありませんJOSNとして作成APIリクエストを取得する一方

int employeeId; 
String Name; 
double salary; 
String createdBy; 
Date createdTimestamp; 
String updatedBy; 
Date updatedTimestamp; 

今私のreqirementです。

しかし、GET APIの応答では、これらのフィールドをすべて送信する必要があります。

ここでは、employeeIdのようなフィールドではjsonIgnoreを使用できません。リクエストではエクスクルードしていませんが、レスポンスで送信したいと考えています。

PATCH/PUT APIコールでは、要求のUIではemployeeIdが必要ですが、createdBy、createdTimestamp、updatedBy、updatedTimestampの4フィールド以下ではありません。

私は簡単な解決策をEmployeeDTO、EmployeeCreateRequestDTO、EmployeeUpdateRequestDTOのよ​​うに別々のDTOを作成することができます。しかし、それはコードの重複につながるでしょう。

これを実現するには、より良い方法やjson機能/アノテーションがありますか?

私がこれをしたい理由は、Swagger Model Schemaでは、EmplyeeDTOで利用可能なすべてのフィールドを表示しています。ここではCreateリクエストに対して具体的にしたいと思います。設定しているフィールドは表示されませんバックのIDのような終わり、CREATEDBYなど

答えて

0

だから、簡単な解決策は、私が EmployeeDTO、EmployeeCreateRequestDTO、EmployeeUpdateRequestDTOのよ​​うに、別々のDTOを作成することができますすることができます。しかし それはコードの重複につながるでしょう。 EmployeeCreateRequestDTOEmployeeUpdateRequestDTOにすべての一般的なフィールドだけEmployeeDTOに存在している場合

それは必ずしも、コードの重複を作成しません。

ビジネスユースケースのデータ/動作を明確に表す特定のクラスを使用することは、そうしてはならないものを混乱させるようなやり方をするよりも優れています。

関連する問題