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

Trabajar Como Analista de Datos