API REST FULL: La guía completa sobre los status code

¿Qué es un API RESTful?

Es una interfaz de programación de aplicaciones (API) que permite que dos sistemas intercambien información por internet de manera segura para llevar a cabo varias tareas, basándose en la arquitectura de transferencia de estado representacional (REST). Este tipo de API, mayormente se utilizan para desarrollar aplicaciones móviles y servicios web, ya  que admiten un intercambio de información que sigue estándares de comunicación de software seguros, confiables y eficientes en un proyecto.

Se puede implementar una desde cero para integrar en un proyecto especificó, o también consumir (hacer uso) de una API pública, eso ya depende de los requerimientos que se tenga.

Por ejemplo. En una empresa comercial, para cumplir con las obligaciones tributarias, su sistema interno debe comunicarse con la API de SUNAT utilizando las credenciales de la empresa, para el envío automatizado de sus ventas diarias, mensuales, etc. De esta manera, se genera un archivo con el formato requerido por la SUNAT, conteniendo la información de las ventas, como tipo de comprobante, números de serie, fecha de emisión y monto total. La API responde con un código de estado(status code) que indica si el envío fue exitoso o no, permitiendo se registre la operación y realice un seguimiento de los envíos, incluso alertando al usuario en caso de errores.

Ahora, si desarrollas o implementas una API, de hecho te vas encontrar con los códigos de estado (status code), pero los conoces a todos, o sólo los más comunes, sabes para que sirven y que significan, y porque debemos conocerlos?. Aquí te dejo una guía detallada sobre estos códigos.

¿Qué significan todos los Status Code?

Los códigos de estado indican si una solicitud HTTP específica al servidor se completó con éxito o no, son importantes para la comunicación entre el cliente(navegador, aplicación) y el servidor. Estos mensajes de error, alerta o información, son una serie de códigos numéricos de tres cifras que están relacionados con una serie de determinadas respuestas que pueden significar un error u otro; en palabras resumidas, son un diccionario completo de códigos para el manejo de errores, control del flujo de la aplicación y la depuración de problemas en el desarrollo web, están más enfocado a los desarrolladores que al usuario final. Las respuestas se agrupan en cinco(5) clases.

1. Informativas o advertencias

Cod.                            Nombre                                           
Significado                                                                                  

100 Continue Indica que el cliente debe continuar con la solicitud o ignorar la respuesta si la solicitud ya ha finalizado.
101 Switching protocols El servidor entiende y está dispuesto a cumplir con la solicitud del cliente aceptando el cambio de protocolo pedido.
102 Processing La petición de solicitud ha sido recibida por el servidor y aún se encuentra en proceso.
103 Checkpoint El servidor reanudará una petición cancelada anteriormente.

2. Mensajes de éxito

Cod.                        Nombre                                          Significado                                                                                   

200 Ok La solicitud se realizó correctamente.
201 Created La solicitud ha tenido éxito y se ha creado un nuevo recurso.
202 Accepted  Solicitud aceptada, pero aún no procesada.
203 Non-Authoritative Information Información no autoritativa.
204 No Content La petición se ha procesado correctamente pero el resultado no tiene contenidos, está vacío.
205 Reset Content Le dice al agente de usuario que restablezca el documento que envió esta solicitud.
206 Partial Content El contenido se está recibiendo de manera parcial con la finalidad de poder reanudar descargas que se pausaron.

3. Mensajes de redireccionamientos

Cod.                    Nombre                                              Significado                                                                               

300 Multiple Choice Esta solicitud tiene más de una posible respuesta, el usuario debe escoger uno de ellos.
301 Moved PermanentlyLa url del recurso solicitado no se encuentra y ha sido movido permanentemente a otro lugar.
302Found El recurso solicitado en la petición se encuentra temporalmente bajo una URl diferente
304 Not modified El recurso solicitado no ha sido modificado.
307 Temporary redirect El recursos solicitado se movió de ubicación, pero sigue estando disponible en esta dirección.

4. Errores del cliente

Cod.                        Nombre                                                     Significado                                                                               
 
400 Bad Request El servidor no pudo interpretar la solicitud debido a que el cliente empleó una sintaxis no válida.
401 UnauthorizedLa petición de respuesta requiere de la autentificación de usuario.
403 Forbidden El servidor entendió la petición, pero se niega a proporcionarla.
404 Not Found El servidor no ha encontrado recurso solicitado.
405 Method Not Allowed El método empleado para la petición de solicitud no está permitido.
406 Not Acceptable Cuando el servidor web, no encuentra ningún contenido que se ajuste a los criterios dados por el agente de usuario.
408 Request Timout El servidor estaba preparado para recibir la petición pero el cliente esperó demasiado a realizarla.
409 ConflictLa solicitud no se pudo completar debido a un conflicto con el actual estado del recurso.

5. Errores del servidor

Cod.                        Nombre                                                                Significado                                                                               
                                                                                                      
500 Internal Server Error El servidor encontró una condición inesperada que le impidió cumplir con la solicitud.
501 Not ImplementedEl servidor no admite el método de solicitud y no se puede procesar.
502 Bad Gateway El servidor obtuvo una respuesta no válida, mientras funcionaba como puerta de enlace para obtener una respuesta necesaria para manejar la solicitud.
503 Service Unavailable El servidor no está listo para procesar la solicitud, por diferentes razones.
504 Gateway TimeoutEl servidor actúa como puerta de enlace y no puede obtener una respuesta a tiempo.
505 Version Not Supported El servidor no admite la versión HTTP utilizada en la solicitud.


Quieres profundizar más, visita el siguiente enlace: HTTP response status codes


Comentarios

Entradas populares de este blog

El clásico error de CORS (Cross-Origin Resource Sharing)

Arquitectura de microservicios: Una guía desde mi experiencia como desarrollador fullstack