Estoy trabajando en el proyecto, que fue iniciado por otra persona. Hay dos archivos de interfaz en la carpeta del modelo def y dto . La diferencia entre los archivos de interfaz def y dto no está clara para mí. ¿Podría algún desarrollador experimentado decirme cuál es la diferencia y cuándo y cómo usar dto en lugar de def y viceversa? Gracias por adelantado.
vendedor-def.interface.ts:
import { SourceType, VendorType } from '../shared/enums/vendor-type.enum'; export interface VendorDef { vendorId: string; companyCode: string; name: string; acronym: string; alias: string; legalId: string; vendorType: VendorType; sourceType: SourceType; fiscalCode: string; } export interface VendorFormDef { sourceType: SourceType; companyCode?: string; previousMainCompany?: string; } export interface InUsageDef { acronym: boolean; legalId: boolean; fiscalCode: boolean; }proveedor-dto.interface.ts
import { SourceType, VendorType } from '../shared/enums/vendor-type.enum'; export interface VendorDto { data: VendorDataDto[] | VendorDataDto; errors?: VendorErrorsDto; } export interface VendorDataDto { attributes: VendorAttributesDto; id: string; } export interface VendorErrorsDto { code: string; title: string; detail: string; } export interface VendorCreateDto { companyCode: string; name: string; acronym: string; legalId: string; fiscalCode: string; vendorType: VendorType; sourceType: SourceType; }Básicamente, se usa para separar lo que le brinda su API de los objetos que manipulará.
VendorDTO es su respuesta API (de ahí la presencia de los campos de data y errors )VendorDef es la definición del objeto que manipulará en su aplicación. Es común tener un transformador de VendorDTO a VendorDef para cuando solicita los datos y un transformador de VendorDef a VendorDTO para cuando desea impulsar una adición/actualización en su API.
No está restringido a Typescript o Angular, por lo que es posible que desee verificar las etiquetas de su pregunta.