Objets de transfert de données (DTO) : définition et utilisation

Un objet de transfert de données (DTO, Data Transfer Object) est un objet qui transporte des données entre des processus. Il permet de faciliter la communication entre deux systèmes (comme une API et votre serveur) sans risquer d’exposer des informations sensibles.

Les DTO constituent des solutions familières pour les professionnels possédant une certaine expérience en programmation. Si vous êtes développeur, vous savez de quoi il s’agit et comment ils fonctionnent. Pour un utilisateur lambda, les concepts sous-jacents sont nettement moins évidents.

Nous allons faire de notre mieux pour vous les expliquer le plus simplement possible, mais nous devrons tout de même aborder quelques points assez techniques pour décrire leur fonctionnement.

Qu’est-ce qu’un DTO ?

Comme mentionné précédemment, DTO est l’acronyme de Data Transfert Object, ou objet de transfert de données en français. Comme son nom l’indique, un DTO est un objet conçu pour transférer des données.

Les DTO sont utilisés dans les environnements en langage de programmation orientée objet (OOP, Object-Oriented Programming) comme Python, C++ et Java. Ils sont faciles à développer et à mettre à jour.

Les environnements OOP reposent sur un système d’« appels ». Chacun d’entre eux est un peu comme une recherche de données : leur exécution nécessite du temps et une vitesse de traitement suffisante. Si vous n’êtes pas vigilant, les appels peuvent également exposer des données sensibles dont vous aimeriez préserver la confidentialité, comme les suivantes :

  • Adresses de collaborateurs
  • Numéros de compte
  • Numéros de sécurité sociale 
  • Identifiants d’entreprise

Comme l’explique un programmeur, vous pouvez avoir besoin du nom et de la photo d’un collaborateur pour lui accorder l’accès à votre entreprise. Vous devez fournir ces données pour obtenir une correspondance, mais vous n’avez pas besoin de transmettre d’autres informations sur le collaborateur qui figurent dans votre base de données. Un DTO peut transférer uniquement les informations requises.

dto Sketch image

Comment créer un DTO ?

Un DTO ne doit contenir que des données, et pas une logique métier. Il s’agit d’un petit objet simple qui ne doit réaliser qu’une seule tâche.

Un bon DTO doit :

  • Éviter le code standard. Créez chaque DTO en partant de zéro.
  • Être facile à créer. Les DTO ne doivent pas être si complexes que vous peinez à les écrire. (Un tel code est facile à pirater.)
  • Être lisible. Tout le monde doit être en mesure d’analyser votre code.

Nous avons évoqué les API dans cet article. Si vous ne savez pas ce que signifie l’acronyme ou comment les API peuvent vous aider, consultez notre article de blog.

Références

Data Transfer Object Pattern in Java: Implementation and Mapping. Stack Abuse.

Rethinking the Java DTO. Janvier 2020. Scott Logic.

Logistipedia