Controladores
Los controladores son responsables de manejar solicitudes HTTP y WebSocket en su aplicación. Sirven como punto de entrada para solicitudes externas y actúan como puente entre la capa de transporte y su lógica de negocio.
Propósito
Los controladores SOLO DEBEN realizar estas tareas específicas:
Validar la entrada de la capa de transporte - Verificar autenticación, autorización y formato de entrada
Llamar a componentes de lógica - Delegar la lógica de negocio a los componentes de lógica apropiados
Transformar la entrada - Convertir los datos de la solicitud en parámetros para las llamadas a componentes de lógica
Manejar errores - Capturar y responder correctamente a los errores de los componentes de lógica
Los controladores NO deben contener lógica de negocio. Todas las reglas de negocio DEBEN implementarse en los componentes de lógica.
Ubicación
Todos los controladores DEBEN colocarse bajo el /src/controllers directorio y nombrarse en referencia a la acción que realizan.
src/
└── controllers/
├── users/
│ ├── get-user.ts
│ ├── create-user.ts
│ └── update-user.ts
├── content/
│ ├── publish-content.ts
│ └── delete-content.ts
└── health.tsEstructura del controlador
Manejador HTTP básico
Manejador de solicitudes POST
Manejador de parámetros de consulta
Requisitos de entrada
Todas las claves de entrada recibidas a través de los controladores (cuerpo JSON, parámetros de consulta, parámetros de URL, encabezados, etc.) DEBEN estar en minúsculas para evitar problemas de mayúsculas/minúsculas al procesar datos.
Parámetros con varias palabras
Los parámetros de varias palabras DEBEN definirse usando snake_case.
Nombres incorrectos:
minPriceCarsomethingURLuserId
Nombres correctos:
min_pricecarsomething_urluser_id
Ejemplo
Manejo de errores
Respuestas de error estándar
Los controladores deben devolver formatos de respuesta de error consistentes:
Mapeo de errores
Mapear los errores del dominio a los códigos de estado HTTP apropiados:
Autenticación y autorización
Comprobación de autenticación
Comprobación de autorización
Buenas prácticas
1. Mantener los controladores delgados
Los controladores deben ser envoltorios delgados alrededor de los componentes de lógica:
2. Validar temprano
Validar y fallar rápido:
3. Usar seguridad de tipos
Aprovechar TypeScript para seguridad de tipos:
4. Registrar apropiadamente
Registrar eventos y errores importantes:
Pruebas de controladores
Vea la Testing Services (WKC) documentación para orientación sobre pruebas de integración.
Última actualización