DTOs
Fa parte della sezione TypeScript e NestJS del percorso Node.js di Coddy. Lezione 10 di 17.
@Body() body: { title: string } descrive il corpo in un solo punto e non viene verificato da nulla: { "title": 42 } passa direttamente. Un DTO, ovvero un oggetto di trasferimento dei dati, è una classe che descrive cosa contiene il corpo di una richiesta.
export class CreateOrderDto {
customer: string;
express?: boolean;
}
@Post()
create(@Body() dto: CreateOrderDto) {
return this.ordersService.create(dto);
}express? indica un campo facoltativo. Il controller e il servizio condividono la classe, quindi concordano sulla sua struttura.
Un DTO è una classe, non un'interfaccia, per un motivo. Quando il codice viene eseguito, le interfacce vengono rimosse insieme agli altri tipi, mentre una classe continua a esistere; inoltre, solo i decoratori di class-validator applicati a una classe possono verificare il corpo in fase di esecuzione. Questa è la lezione successiva.
Sfida
Facile- Completa
CreateTaskDtoindto/create-task.dto.ts: untitlee undonefacoltativo. - Usalo per il corpo di
POST /tasks. Una nuova attività prendedonedal corpo,falsese è assente. - Invia
POST /taskscon{ "title": "Pay rent", "done": true }, poi con{ "title": 42 }.
Provalo tu
// Descrivi il corpo di POST /tasks: un titolo e done quando il client lo invia.
export class CreateTaskDto {}
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.