Controladores
Los controladores son responsables de manejar solicitudes HTTP y WebSocket en tu aplicación. Sirven como punto de entrada para solicitudes externas y actúan como el puente entre la capa de transporte y tu lógica de negocio.
Propósito
Los controladores DEBEN realizar solo estas tareas específicas:
Validar la entrada de la capa de transporte - Verificar la autenticación, la autorización y el formato de la entrada
Llamar a los componentes lógicos - Delegar la lógica de negocio a los componentes lógicos apropiados
Transformar la entrada - Convertir los datos de la solicitud en parámetros para las llamadas a los componentes lógicos
Manejar errores - Capturar y responder adecuadamente a los errores de los componentes lógicos
Ubicación
Todos los controladores DEBEN colocarse en 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 y minúsculas al procesar los datos.
Parámetros de varias palabras
Los parámetros de varias palabras DEBEN definirse usando snake_case.
Ejemplo
Manejo de errores
Respuestas de error estándar
Los controladores deben devolver formatos coherentes de respuesta de error:
Mapeo de errores
Mapea los errores del dominio a los códigos de estado HTTP apropiados:
Autenticación y autorización
Verificación de autenticación
Verificación de autorización
Buenas prácticas
1. Mantén los controladores delgados
Los controladores deben ser envolturas delgadas alrededor de los componentes lógicos:
2. Valida temprano
Valida y falla rápido:
3. Usa seguridad de tipos
Aprovecha TypeScript para la seguridad de tipos:
4. Registra adecuadamente
Registra eventos y errores importantes:
Pruebas de controladores
Consulta la documentación de Testing Services (WKC) documentación para orientación sobre pruebas de integración.
Última actualización