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:

  1. Validar la entrada de la capa de transporte - Verificar autenticación, autorización y formato de entrada

  2. Llamar a componentes de lógica - Delegar la lógica de negocio a los componentes de lógica apropiados

  3. Transformar la entrada - Convertir los datos de la solicitud en parámetros para las llamadas a componentes de lógica

  4. Manejar errores - Capturar y responder correctamente a los errores de los componentes de lógica

circle-exclamation

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.ts

Estructura 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.

triangle-exclamation
circle-check

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