Nova@1.0 - Despliegue de Backend III

MDG developerMDG developer
2 min read

Una vez creados todos los recursos, el primer paso a configurar son los DTOs.

¿Qué son los DTOs?

DTO son las siglas en inglés de Data Transfer Object. Es un patrón de diseño utilizado para transferir datos entre diferentes capas de una aplicación, como la capa de presentación y la capa de lógica de negocio o persistencia.

Su propósito principal es encapsular los datos en un objeto sencillo y específico, evitando exponer directamente las entidades del modelo de dominio o los detalles internos de la base de datos.

En nuestro caso, los DTO definirán las estructuras de datos que va a usar en PrismaORM cuando actúe como interfaz entre nuestro backend y la base de datos.

A modo de ejemplo, este sería el DTO para los clients

import { IsString, IsOptional, IsEmail, IsPhoneNumber } from 'class-validator';

export class CreateClientDto {

  @IsString()
  first_name: string;

  @IsString()
  last_name: string;

  @IsOptional()
  @IsPhoneNumber(null) // Ensures the value is a valid phone number
  phone_number?: string;

  @IsOptional()
  @IsEmail() // Ensures the value is a valid email address
  email?: string;
}

Es evidente que su estructura nos va a definir qué tipo de datos estamos esperando cuando vamos a utilizar ese recurso.

El comando de creación de recursos de Nestjs también nos ha creado una carpeta entities con un archivo client.entitity.ts

En este caso, podemos optar por definir la clase Client en ese archivo para que nuestro backend haga referencia a ella, o bien emplear las que genera por defecto PrismaORM a través de su prisma.client.

He optado por lo segundo porque creo que facilita el proceso y porque es una de las ventajas de usar PrismaORM

El resto del trabajo de hoy consistirá en actualizar todos los DTOs de todos los recursos.

La idea es, a partir de mañana, ponerme a configurar los diferentes endpoints que quiero que tenga la API.

0
Subscribe to my newsletter

Read articles from MDG developer directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

MDG developer
MDG developer