Comme je précédemment répondu L'utilisation des DTOs permet de découpler les modèles de persistance à partir des modèles d'API. Vous semblez donc faire ce qu'il faut.
Le problème est que ces 4 classes ont exactement les mêmes attributs.
C'est toujours une bonne idée de découpler les modèles de votre API des modèles d'une API tierce. Si l'API tierce change leur contrat, vous ne briserez pas votre clients. Utilisez donc des modèles différents pour chaque API.
Et s'en tenir à cadres cartographiques tels que MapStruct pour réduire le code passe-partout. Vous pouvez également envisager Lombok pour générer des getters, setters, equals()
, hashcode()
y toString()
méthodes pour vous.
Dois-je répéter ces attributs dans toutes ces classes ? Devrais-je avoir une seule classe DTO pour l'ensemble du flux ?
Si les modèles de demande et de réponse contiennent tous deux l'élément même ensemble de champs alors vous pouvez commencer par un classe unique pour représenter les données utiles de la demande et de la réponse d'un système de gestion de l'information. chaque API. Lorsque les champs commencent à différer (charge utile de la demande différente de la charge utile de la réponse), vous créez de nouveaux modèles pour représenter chaque charge utile.
À long terme, l'utilisation de modèles distincts pour la demande et la réponse vous donnera de la flexibilité, en vous assurant que vous exposerez et recevrez uniquement les attributs que vous souhaitez.