CodeGym /Cursos /Módulo 5. Spring /Qué es REST y para qué sirve

Qué es REST y para qué sirve

Módulo 5. Spring
Nivel 10 , Lección 0
Disponible

Hoy empezamos a familiarizarnos con REST — una concepto que lleva tiempo dominando el mundo del desarrollo web. REST es tan popular que algunos lo llaman "JavaScript, pero solo sobre APIs". Pero vamos al grano. Vamos a ver en detalle qué es REST, para qué sirve y cómo se aplican sus principios en aplicaciones modernas.


¿Qué es REST?

REST (Representational State Transfer) — es un estilo arquitectónico para crear servicios web, propuesto por Roy Fielding en 2000. Imagina REST como un conjunto de normas de tráfico para Internet — define cómo las aplicaciones deben intercambiar datos a través de la web para que su interacción sea eficiente, fiable y fácil de entender. Así como las normas de tráfico ayudan a que los coches circulen de forma segura y eficiente, REST establece principios claros para el intercambio de datos entre cliente y servidor. Estos principios garantizan:

  • Un funcionamiento rápido de los servicios
  • Una transmisión de datos fiable
  • La capacidad del sistema para crecer y evolucionar
  • Simplicidad de uso para los desarrolladores

Principios básicos de REST

En el corazón de REST está la noción de recursos. Un recurso es cualquier entidad que se pueda gestionar: usuario, pedido, producto o cualquier otra cosa. Cada recurso tiene un identificador único (URI) por el que se puede acceder a él.

Entonces:

  1. Basado en recursos (Resource-based): todo en REST se representa como recursos. Este es el principio clave que define cómo organizamos los datos y cómo interactuamos con ellos.

    Ejemplo:

    
    /users/1 — información sobre el usuario con ID = 1
    /orders/5 — detalles del pedido con ID = 5
    
  2. Métodos HTTP — nuestros mejores amigos. REST se apoya en los métodos HTTP existentes:

    • GET — obtener datos (lectura).
    • POST — crear un nuevo recurso.
    • PUT — actualizar completamente un recurso.
    • PATCH — actualizar parte de un recurso.
    • DELETE — eliminar un recurso.
  3. Sin estado (Stateless). Cada interacción del cliente con el servidor es independiente, es decir, el servidor no guarda información sobre el estado del cliente. Si el cliente envía una petición, debe incluir todos los datos necesarios en cada petición.
  4. Códigos de respuesta HTTP. REST indica el resultado a través de los códigos de respuesta:
    • 200 OK — Todo salió bien.
    • 201 Created — Recurso creado.
    • 404 Not Found — Recurso no encontrado.
    • 500 Internal Server Error — Algo salió mal..
  5. Interfaz uniforme (Uniform Interface). REST ayuda a garantizar una forma estándar de acceso a los recursos del API. Esto significa que cualquier cliente que conozca el protocolo REST podrá interactuar con el servidor.
  6. Cacheable. El servidor puede marcar las respuestas como cacheables, para evitar ejecutar repetidamente las mismas peticiones.

Ventajas de usar REST API

¿Por qué REST se volvió tan popular? No es solo una moda. REST tiene ventajas reales:

1. Universalidad

Un REST API se puede usar desde cualquier tipo de cliente: aplicaciones web, apps móviles, dispositivos IoT e incluso frigoríficos con WiFi.

2. Sencillez

REST funciona sobre el protocolo estándar HTTP, que ya le es familiar a cualquier desarrollador. Nada de librerías pesadas ni formatos complicados — solo peticiones y respuestas de texto en JSON o XML.

3. Escalabilidad

Gracias al principio de "sin estado", REST escala con facilidad — las peticiones se procesan de forma independiente, y puedes añadir más servidores para manejar la carga.

4. Independencia de lenguaje

Un REST API se puede implementar en cualquier lenguaje de programación, y los clientes pueden estar en otro lenguaje. Lo importante es entender los estándares comunes de la interfaz.

5. Facilidad de integración

REST API se integra fácilmente con frameworks de frontend como React, Angular o Vue.js, y con consumidores en otras plataformas.


Analogía

Imagina un REST API como una cafetería moderna. En ella:

  • El menú (la documentación del API) describe todos los platos disponibles (los recursos)
  • Cada plato tiene su número en el menú (un URI único)
  • Hay acciones estándar: pedir un plato (POST), recibirlo listo (GET), cambiar el pedido (PUT) o cancelarlo (DELETE)
  • La cafetería no recuerda tus pedidos anteriores (stateless) — cada vez haces un pedido nuevo con toda la información
  • En la cocina pueden tener preparados los platos más populares (caching)
  • No te importa quién cocina — el chef o el sous-chef (sistema multinivel)

Escenarios típicos de uso de REST

REST se usa prácticamente en todas partes, desde aplicaciones simples hasta arquitecturas complejas de microservicios:

  1. Aplicaciones web. El REST API conecta frontend y backend. Por ejemplo, un comprador en una tienda online hace un pedido a través del REST API.
  2. Aplicaciones móviles. Esas apps bonitas que instalas en el móvil suelen usar REST API para comunicarse con el servidor.
  3. Microservicios. En sistemas distribuidos, REST ayuda a que los servicios se comuniquen entre sí.
  4. Integraciones con terceros. Pasarelas de pago, servicios de autenticación (OAuth), servicios de correo — todo eso suele ser REST API.

¿Por qué REST y no otra cosa?

Te puedes preguntar: ¿por qué REST? ¿Por qué no usar SOAP (sí, ese protocolo antiguo), o GraphQL, por ejemplo? SOAP, aunque potente, pide mucho más esfuerzo para configurar y usar. GraphQL, siendo flexible y moderno, es más complicado de aprender y encaja mejor en casos específicos. REST suele ser la opción intermedia perfecta: estándar, sencillo y eficiente.


Ejemplo de uso de REST API

Así puede verse el trabajo con un REST API en la práctica. Supongamos que tenemos el recurso User (usuario):

  1. Obtener la lista de todos los usuarios:
    
    GET /users
    
    Response:
    200 OK
    [
    {"id": 1, "name": "Alice"},
    {"id": 2, "name": "Bob"}
    ]
    
  2. Obtener usuario por ID:
    
    GET /users/1
    
    Response:
    200 OK
    {
    "id": 1,
    "name": "Alice"
    }
    
  3. Crear un nuevo usuario:
    
    POST /users
    
    Body:
    {
    "name": "Charlie"
    }
    Response:
    201 Created
    {
    "id": 3,
    "name": "Charlie"
    }
    
  4. Actualizar usuario:
    
    PUT /users/1
    
    Body:
    {
    "name": "Alicia"
    }
    Response:
    200 OK
    {
    "id": 1,
    "name": "Alicia"
    }
    
  5. Eliminar usuario:
    
    DELETE /users/1
    
    Response:
    204 No Content
    

La sencillez de REST lo convierte en la opción ideal para desarrollar aplicaciones web. En las próximas lecciones veremos aspectos más avanzados de crear REST API usando Spring Boot, aprendremos a escribir CRUD API y a manejar peticiones. Nos esperan ejemplos prácticos y ejercicios interesantes.

Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION