DEV Community

Milton Diaz
Milton Diaz

Posted on

Entendiendo las APIs RESTful y el Protocolo HTTP

Una API (aplication programming interfaces o en español interfaces de programación de aplicaciones), es una interfaz que sirve como medio para que dos o más programas se comuniquen e interactúen entre ellos y compartan datos bajo ciertas normas y estándares.

Existen distintitos tipos de APIs

  • APIs de Servicios Web: Este tipo de API permite el intercambio de información entre un servidor y un cliente haciendo uso del protocolo http o https, la información será transportada comúnmente en formato JSON o XML
  • APIs de Bibliotecas: Este tipo de API nos permite hacer uso de funciones, métodos o rutinas que hacen parte de una biblioteca la cual tendremos que importar
  • APIs de Clases: Este tipo de API nos permite hacer uso de clases ya definidas las cuales ya poseen una lógica de programación con el fin de agilizar el proceso de desarrollo
  • APIs de Sistema operativos: este tipo de API permite que nuestros programas interactúen con el sistema operativo con el fin de tener acceso a elementos como el teclado, la interfaz gráfica, etc.

Nota: Una API puede ser local o remota

Protocolo HTTP (Hypertext Transfer Protocol)

En español protocolo de transferencia de hipertexto, es un protocolo que gestiona la conexión de los servidores web con los navegadores. Definiendo ciertas normas y estándares para poder establecer una conexión.

Los navegadores utilizan este protocolo para solicitar páginas web a un servidor, el servidor devuelve la información solicitada en código HTML para que pueda ser mostrada en el navegador.

Este método funciona de la siguiente manera.

  1. El cliente envía una petición, que se transmite por internet
  2. El servidor recibe y procesa la petición, genera una respuesta y la envía al cliente
  3. Finalmente el cliente recibe la respuesta

Generalmente el cliente es el navegador, pero también puede ser otra API, un sistema de pruebas, entre otros.

Protocolo HTTP
Nota. Adaptada de Marisneth Reyes. Pintorest. (https://co.pinterest.com/pin/755056693770449347/).

Códigos de Estado HTTP

Estos códigos nos indican cómo está siendo procesada una solicitud. Cada estado tiene asociado un código ya definido, y cada código tiene un significado semántico que representa el estado de una petición.

  • Estados de Código 1xx: Estos códigos indican que la petición fue recibida por el servidor, pero está siendo procesada por el servidor
  • Estados de Código 2xx: Indican que la petición fue recibida, aceptada y procesada correctamente
  • Estados de Código 3xx: Indican que hay que tomar acciones adicionales para completar la solicitud, como por ejemplo redirecciones
  • Estados de Código 4xx: Indican errores del lado del cliente, es decir que se hizo mal una solicitud, faltan datos o puede estar solicitando un recurso que no existe
  • Estados de Código 5xx: Indican errores por parte del servidor

Códigos más Comunes

  • 200: Indica que una petición GET fue exitosa
  • 201: Indica que una petición POST fue exitosa
  • 204: Indica que la solicitud se procesó correctamente pero no nos retorna información
  • 400: Indica que la petición que estamos enviando al servidor es errónea
  • 403: forbidden, indica que no tenemos acceso el recurso al que queremos acceder así estemos autenticados en el servidor
  • 401: Indica que antes de hacer una petición al servidor debemos de autenticarnos con el servidor
  • 404: Indica que el recurso al que queremos acceder no existe
  • 500: Es un error que retorna el servidor cuando la solicitud no pudo ser procesada

REST (Representational State Transfer)

REST, por sus siglas en español (transferencia de estado representacional), es un conjunto de principios que definen la forma en la que se deben de manipular los datos.

REST le agrega una capa muy delgada de complejidad y abstracción a HTTP, mientras que http se basa en la transferencia de archivos, REST se basa en la transferencia de recursos.

El funcionamiento de REST es el siguiente:

  • El servidor expone la API REST y el cliente hace uso de ella
  • El servidor almacena la información y la pone a disposición del usuario, mientras que el cliente toma la información y la muestra al usuario

API RESTful

Un API RESTful, no es más que una API que utiliza los principios de REST para comunicarse hacia y desde un servidor, el principio fundamental de las APIs RESTFUL es el uso de los métodos o verbos HTTP.

  • GET: Para obtener un recurso
  • POST: Para crear un nuevo recurso
  • PUT: Para reemplazar un recurso por completo
  • DELETE: Para borrar un recurso
  • PATCH: Para modificar una parte de un recurso
  • HEADER: Para consultar la existencia de un recurso
  • OPTIONS: Para consultar si un dominio permite realizar una petición, solo funciona con peticiones que se realizan desde un navegador

Estos métodos son utilizados por el cliente para crear, manipular y eliminar datos de un servidor

Elementos de una API RESTful

  • Recurso: En una API RESTful, todo se considera un recurso. Un recurso es cualquier tipo de objeto, dato o servicio que puede ser accedido y manipulado a través de la API.
  • URI: Es una cadena de caracteres que identifica de manera única un recurso específico en la API. Ejemplo: https://api.ejemplo.com/usuarios/123.
  • Acción/Verbos: Todas las peticiones a una API RESTful deben estar asociadas a uno de los verbos HTTP (GET, POST, PUT, DELETE).
  • Endpoint: Un endpoint es el punto final de la comunicación con la API. Representa el medio a través del cual el cliente y el servidor se comunican. Cada endpoint está asociado con una URI y un método HTTP específico. Ejemplo GET https://api.ejemplo.com/usuarios/123.
  • Headers: Los headers en las solicitudes y respuestas HTTP transportan información adicional necesaria para la comunicación y el procesamiento de los recursos.
  • Solicitud y Respuesta (Request and Response): El cuerpo de la solicitud contiene los datos que se envían al servidor, mientras que el cuerpo de la respuesta contiene los datos que el servidor devuelve al cliente.
  • Formato: Cada recurso debe estar representado en un formato específico, como JSON, XML, PNG, entre otros. El formato define cómo se estructura y se intercambia la información entre el cliente y el servidor.

API RESTful Model
Nota. Adaptada de Hoanlk. Connecting Automation Industry With HTTP REST API: Potential And Dream Of The Future Of Technology. (https://co.pinterest.com/pin/755056693770449347/).

Solicitud y Respuesta (Request and Response)

Una petición o "request" en inglés, es una de las partes más importantes de una API REST. Es una solicitud enviada por un cliente (como un navegador web, una aplicación móvil o un programa) a un servidor para realizar una acción específica sobre un recurso. Estas peticiones utilizan los métodos HTTP para indicar la acción deseada y se dirigen a una URI que identifica el recurso.

Una petición está compuesta por la dirección de destino, el método HTTP, los encabezados y el cuerpo que contiene la información que se va a enviar al servidor.

Request and Response
Nota. Adaptada de Esteban Balvin. Curso API testing conPostman para crear automatizacion. 2024. (https://co.pinterest.com/pin/755056693770449347/).

Top comments (0)