Magento 2 Experten — Hyvä Theme, Tailwind CSS & SEO aus einer Hand ›

DTOs statt der Entity direkt

DTOs statt der Entity direkt

~15 Min. Lesezeit Zuletzt aktualisiert am 8. August 2026

Serialisierungsgruppen reichen für die MEISTEN Fälle – manchmal soll das API-Antwortformat aber STRUKTURELL vom Entity-Aufbau ABWEICHEN. Dafür gibt es DTOs (Data Transfer Objects).

Wann Gruppen nicht mehr ausreichen

  • Die API-Antwort soll Felder aus MEHREREN Entities KOMBINIEREN (z. B. Projekt + Anzahl Tasks in EINEM flachen Objekt).
  • Das externe API-Format soll UNABHÄNGIG von internen Refactorings der Entity bleiben (Versionierung/Stabilität).
  • Berechnungslogik ist zu KOMPLEX für eine einzelne Getter-Methode (Kapitel 25) und verdient eine EIGENE Klasse.

Ein Output-DTO definieren

api/src/Dto/ProjectSummary.php
<?php

declare(strict_types=1);

namespace App\Dto;

final class ProjectSummary
{
    public int $id;
    public string $name;
    public bool $isRecent;
}

EINE einfache, reine Datenklasse OHNE Doctrine-Attribute, OHNE Validierung – ein DTO beschreibt NUR die FORM der API-Antwort, nicht die Speicherung.

Das DTO an eine Operation binden

use App\Dto\ProjectSummary;

new Get(
    uriTemplate: '/projects/{id}/summary',
    output: ProjectSummary::class,
    provider: ProjectSummaryProvider::class,
),

output legt fest, WELCHE Klasse API Platform statt der Entity serialisiert – ein provider (ein STATE PROVIDER, GENAU das Prinzip aus Kapitel 5) übernimmt die eigentliche BEFÜLLUNG des DTOs aus der echten Project-Entity.

Achtung: Ein VOLLSTÄNDIGES Provider-Beispiel folgt ERST in Block 7 (Kapitel 57-66), sobald State Provider im DETAIL behandelt werden – dieses Kapitel vermittelt NUR das KONZEPT, damit spätere Kapitel darauf aufbauen können, OHNE das Prinzip neu erklären zu müssen.

DTOs vs. Gruppen: eine Entscheidungshilfe

AnsatzWann sinnvoll
Serialisierungsgruppen (Kapitel 23-24)EINFACHER, direkt an der Entity, für die MEISTEN CRUD-Fälle ausreichend
DTOs (dieses Kapitel)MEHR Aufwand, aber notwendig für kombinierte/stark abweichende Antwortformate

Tipp: Für UNSER Projekt bleiben Project und Tag bei Serialisierungsgruppen – DTOs kommen ERST in Block 7 zum Einsatz, wenn eine Projekt-Statistik-Resource ECHTEN Mehrwert gegenüber einer einfachen Entity-Antwort bietet.