Data Transfer Object DTO: definitie en gebruik

Een Data Transfer Object (DTO) is een object dat data tussen processen verzendt. Met deze techniek kunt u de communicatie tussen twee systemen (zoals een API en uw server) verzorgen zonder gevoelige informatie bloot te stellen aan risico's.

DTO's zijn handige oplossingen voor mensen met een programmeerachtergrond. Als u een developer bent, weet u ongetwijfeld wat het zijn en hoe ze werken. Bent u een gemiddelde gebruiker, dan kunnen DTO's heel verwarrend zijn.

We zullen DTO's hier in zo duidelijk mogelijke taal proberen uit te leggen. Maar houd er wel rekening mee dat we soms wat technischer worden om de werking ervan uit te leggen.

Wat is een DTO?

Zoals hierboven vermeld, staat DTO voor Data Transfer Object. En zoals de naam al aangeeft, is een DTO een object om data over te dragen.

DTO's worden gebruikt in omgevingen met een OOP-taal (Object-Oriented Programming) zoals Python, C++ en Java. DTO's zijn eenvoudig te ontwikkelen en bij te werken.

OOP-omgevingen vertrouwen op een systeem van "calls". Een call heeft wat weg van een datalookup en heeft zowel tijd als verwerkingssnelheid nodig. Wees voorzichtig, want calls kunnen ook gevoelige data vrijgeven die u liever verborgen houdt, zoals:

  • Adressen van werknemers
  • Rekeningnummerrs
  • Burgerservicenummers
  • Zakelijke logins

Een programmeur legt uit dat de naam en een foto van een werknemer nodig kunnen zijn om uw organisatie binnen te komen. Die data is nodig voor een match, maar u hoeft geen andere informatie over de werknemer te geven die in uw database aanwezig is. Een DTO kan alleen de vereiste informatie verzenden.

dto Sketch image

Een DTO gebruiken

Een DTO mag alleen data bevatten, geen logica. Het is een eenvoudig stukje software dat maar één taak hoeft uit te voeren.

Een goede DTO wordt gekenmerkt door het volgende:

  • Minimaliseert boilerplate. Elk exemplaar wordt nieuw geschreven.
  • Is gemakkelijk te maken. DTO's moeten niet zo ingewikkeld zijn om te schrijven. (Code zoals deze is gemakkelijk te kraken.)
  • Is leesbaar. Iedereen moet uw code kunnen parseren.

We hadden het al even over API's. Als u niet zeker weet wat dit acroniem betekent of hoe API's u kunnen helpen, bekijk dan onze blogpost.

Referenties

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

Rethinking the Java DTO. (Januari 2020). Scott Logic.

Logistipedia.