Hola, mi nombre es Josh Gardino, y en estas lecciones, te mostraré cómo manejar los errores y probar las API REST. Recuerde que los códigos de estado de respuesta HTTP se dividen en varios grupos. Los códigos de estado en el rango 400 y 500 se consideran errores. Sin embargo, la diferencia crítica es que los códigos de estado que comienzan con un cuatro son errores del cliente y los códigos de estado que comienzan con cinco son errores del servidor. Los errores del cliente serían errores relacionados con la solicitud en sí. La solicitud podría haber contenido JSON con formato incorrecto, el acceso a la ruta solicitada estaba prohibido, no se pudo encontrar el recurso solicitado, y más. Cuando se producen errores del cliente, es importante que el servidor responda con el código de estado de la serie 400 correcto. Sin embargo, mantener todos los detalles sobre el error del cliente normalmente no se requiere en el lado del servidor. El cliente debe ser capaz de abordar el problema. y enviar una nueva solicitud. De mayor preocupación en el lado del servidor son los códigos de error del servidor, y estos son los que comienzan con cinco. Aunque existen numerosos códigos de respuesta de error del servidor, con mucho, el más importante y relevante es 500. 500 indica error interno del servidor por una condición inesperada en el lado del servidor, lo que significa que ocurrió un error. El código de estado 500 está destinado ser una respuesta genérica comodín. Sin embargo, suele ser el único tipo del código de error del lado del servidor que el código del lado del servidor de la API REST necesita manejar. Se pueden encontrar otros códigos de error del lado del servidor por un cliente, como 503 indicando que el servidor no está listo. Pero este tipo de respuestas normalmente se envían por una puerta de enlace API y no por la propia aplicación. Vamos a ver en el Departamento de Vehículos Motorizados API en Postman. Aquí está el punto final GET v1/drivers y cuando hago clic en Enviar, se devuelve un código de estado 200 y una lista de todos los controladores de la base de datos. Ahora veamos cómo se ve esto en el código fuente. Aquí está el controlador para el método GET. Realiza una consulta de selección en la base de datos y devuelve todos los datos. Esto funciona bien si no se encuentran errores. Sin embargo, hagamos que ocurra un error. En la línea 12, voy a ingresar un código no válido. Reiniciemos el servidor y volvamos a Postman. Haré clic en enviar y, como puede ver, No recibí un código de estado ni ningún tipo de respuesta. El cartero muestra un error ECONNRESET. Esto significa que el servidor no respondió. con cualquier cosa que Postman pudiera procesar. Volvamos a donde se está ejecutando el servidor. Mi servidor local detectó con precisión el error xyz y mostró los detalles completos en la ventana de la consola. Estos detalles se denominan seguimiento de pila. y son muy importantes para fines de depuración. La primera línea en la salida de error me dice que esto fue un error de referencia porque el servidor no entendió qué es xyz, por lo que el error se está capturando correctamente pero el cliente no tiene idea de lo que pasó. El servidor podría estar caído, podría haber un problema de red en el lado del cliente, podría haber un error del lado del servidor pero el cliente no tiene forma de saber lo que sucedió y eso se debe a que este código no realiza ningún tipo de manejo de errores. Cuando se produce el error, el servidor detecta que algo salió mal pero no se envía ninguna respuesta porque para el método GET, el único tipo de respuesta que se envía es un 200. Ahora, agreguemos un poco de manejo de errores a la aplicación Node.js Express con sentencias try y catch. Ahora el error está siendo manejado. y todos los errores se detectarán en la línea 16. En la línea 17, envío un estado de 500 al cliente. Volvamos a Postman y probemos esto. Ahora, cuando envío la solicitud, Recibo una respuesta y tiene un código de estado 500 indicando un error interno del servidor. El cliente no sabe exactamente lo que pasó. en el lado del servidor, pero tiene mucha más información que con la solicitud anterior. Ciertamente es posible enviar los detalles completos del error de vuelta al cliente, junto con el código de estado de error del servidor interno 500 pero esto es ciertamente problemático. Lo más importante, esto expone detalles internos sobre la API y esto presenta un problema de seguridad potencialmente grave pero además, esta información no es de ayuda para el cliente, así que no hay razón para enviarlo pero eso no significa que el servidor tiene que devolver un mensaje de respuesta del servidor genérico. Volvamos al código y agregue un mensaje de error amistoso. Ahora, cuando enviamos esta solicitud, todavía recibimos un 500 pero con un mensaje de error personalizado. Otra razón para usar un mensaje de código de estado 500 personalizado es proporcionar al cliente un seguimiento o ID de correlación que el personal del lado del cliente de la API podría compartir con el personal del lado del servidor para realizar una solución de problemas detallada. Gracias por ver. Estén atentos a la próxima lección donde les mostraré cómo usar pruebas automatizadas para solicitudes GET en API REST.