Skip to content
IRC-CodingIRC-Coding
RESTfulMétodos HTTPCódigos de estadoIdempotenciaStatelessnessCRUDDiseño de API

Principios RESTful: GET, POST, PUT, DELETE, PATCH

Aprende HTTP métodos, CRUD, códigos de estado, idempotencia y statelessness en diseño RESTful.

S

schutzgeist

2 min read
Principios RESTful: GET, POST, PUT, DELETE, PATCH

Principios de Diseño RESTful

Este artículo es una aclaración de conceptos sobre principios de diseño RESTful, incluidas preguntas de evaluación y etiquetas.

En Resumen

REST es un enfoque arquitectónico para APIs basado en HTTP que se destaca por sus métodos claramente definidos, recursos, códigos de estado y ausencia de estado.

Descripción Técnica Concisa

REST es un protocolo ligero basado en HTTP para el intercambio de recursos entre cliente y servidor. Utiliza los métodos HTTP: GET (lectura), POST (creación), PUT (reemplazo), DELETE (eliminación), PATCH (actualización parcial). REST sigue el principio de statelessness, lo que significa que cada solicitud debe contener toda la información necesaria y el servidor no almacena datos de sesión. La idempotencia juega un papel importante: GET, PUT y DELETE son idempotentes (la ejecución múltiple tiene el mismo efecto), mientras que POST y PATCH no lo son. REST utiliza códigos de estado estandarizados (por ejemplo, 200 OK, 201 Created, 404 Not Found, 500 Server Error) para comunicar resultados.

Puntos Clave para Evaluación

  • GET, POST, PUT, DELETE, PATCH: métodos HTTP para CRUD
  • REST es sin estado, no hay seguimiento de sesión en el servidor
  • Idempotencia: solicitudes repetidas solo actúan una vez (por ejemplo, en PUT)
  • URIs orientadas a recursos, por ejemplo /api/users/123
  • Uso de códigos de estado HTTP (200, 201, 404, 500, etc.)
  • PATCH actualiza solo partes de un objeto
  • Aspectos de seguridad: autenticación por token, HTTPS, CORS
  • Documentación de interfaces con OpenAPI o Swagger

Componentes Principales

  1. Métodos HTTP (GET, POST, PUT, DELETE, PATCH)
  2. Convenciones de URI (basadas en recursos)
  3. Códigos de estado (2xx, 4xx, 5xx)
  4. Conformidad REST (Richardson Maturity Model)
  5. Reglas de idempotencia
  6. Arquitectura sin estado
  7. Content Negotiation (encabezados Accept/Content-Type)
  8. JSON/XML como formatos de datos
  9. Autenticación (Bearer Token, API Keys)
  10. Documentación OpenAPI/Swagger

Ejemplo Práctico

// Ejemplo: REST-API para gestión de usuarios
GET /users → Lista todos los usuarios
POST /users → Crear nuevo usuario
GET /users/1 → Mostrar usuario con ID 1
PUT /users/1 → Reemplazar usuario completamente
PATCH /users/1 → Actualizar solo campos específicos
DELETE /users/1 → Eliminar usuario

Explicación: Cada método corresponde a una acción claramente definida sobre un recurso. La URI permanece constante, el método cambia la semántica.

Ventajas y Desventajas

Ventajas

  • Simple, fácil de entender
  • Usa protocolos estándar (HTTP)
  • Independiente de plataforma e idioma
  • Escalable

Desventajas

  • Sin gestión de sesiones integrada
  • Puede ser ineficiente con muchas llamadas API
  • Sin estandarización para operaciones complejas

Preguntas Típicas de Evaluación (con respuesta breve)

  1. ¿“Sin estado” en REST? El servidor no almacena datos de sesión. Cada solicitud debe ser completa en sí misma.
  2. ¿Métodos HTTP idempotentes? GET, PUT, DELETE.
  3. ¿Diferencia entre PUT y PATCH? PUT reemplaza un objeto completamente, PATCH cambia solo campos específicos.
  4. ¿Código de estado 201? Recurso creado exitosamente.
  5. ¿REST vs. SOAP? REST es ligero, utiliza HTTP directamente, SOAP es basado en XML y pesado.
  6. ¿Cómo direccionar un recurso? Mediante URI, por ejemplo /users/123.
  7. ¿Medidas de seguridad para REST-APIs? HTTPS, autenticación por token, control de acceso.
  8. ¿Por qué es importante la idempotencia? Los reintentos durante fallos de red no tienen consecuencias no deseadas.

Fuentes Principales

  1. https://learn.microsoft.com/en-us/azure/architecture/best-practices/api-design
  2. https://developer.mozilla.org/de/docs/Web/HTTP/Methods
  3. https://restfulapi.net/
  4. https://swagger.io/specification/
  5. https://www.howtographql.com/basics/1-graphql-vs-rest/
Volver al blog
Share:

Nächster Artikel in Arquitectura de Software

Weiterlesen
REST: Arquitectura, Recursos, Métodos y Caching

Entradas relacionadas