REST API Design
Este artículo es una guía conceptual sobre REST API Design, que incluye preguntas de evaluación, componentes clave y etiquetas.
En resumen
REST es un estilo arquitectónico para servicios web que utiliza diseño orientado a recursos y métodos HTTP para crear interfaces escalables.
Descripción técnica concisa
REST (Representational State Transfer) se basa en seis restricciones, entre ellas la separación cliente-servidor y la comunicación sin estado. Los recursos se direccionan mediante URIs y se transfieren a través de representaciones (JSON/XML). Los métodos HTTP (GET, POST, PUT, DELETE) implementan operaciones CRUD. HATEOAS puede hacer que las APIs sean navegables. El rendimiento se optimiza mediante caché y paginación, entre otros mecanismos.
Puntos clave para evaluación
- Richardson Maturity Model para evaluar la calidad de la API
- Idempotencia de PUT frente a POST
- HATEOAS como principio de hipermedia
- Seguridad mediante OAuth 2.0 y HTTPS
- Versionado a través de URI o headers
Componentes principales
- Recursos (diseño de URIs)
- Métodos HTTP (GET, POST, PUT, DELETE)
- Códigos de estado (200, 201, 400, 401, 404, 500)
- Formatos de medios (JSON, XML)
- Mecanismos de seguridad (HTTPS, OAuth)
Ejemplo práctico (API de gestión de usuarios)
Recursos:
/users
/users/{id}
GET /users?page=1
POST /users
PUT /users/{id}
DELETE /users/{id}
Ventajas e inconvenientes
| Ventajas | Inconvenientes |
|---|---|
| Integración simple | Manejo de errores complejo |
| Reutilización | Difícil de usar sin documentación |
| Escalabilidad | Overfetching con recursos grandes |
Preguntas principales de evaluación (con respuesta breve)
- ¿Qué método HTTP es idempotente pero no seguro? PUT.
- ¿Cómo se evita el overfetching? Mediante parámetros de consulta específicos (o enfoques alternativos como GraphQL).
- ¿Tres riesgos de seguridad en REST APIs? Broken Authentication, Mass Assignment, Injection.
- ¿Qué significa HATEOAS? Hypermedia As The Engine Of Application State. Los enlaces controlan la navegación.
- ¿Cómo documentas REST APIs? Con OpenAPI (Swagger).
Glosario
| Término | Definición |
|---|---|
| Idempotencia | La ejecución múltiple tiene el mismo efecto que una sola ejecución |
| HATEOAS | Navegación basada en hipermedia entre recursos |
| OAuth 2.0 | Marco de autorización para acceso delegado |
Análisis temático
- Núcleo técnico: Protocolo HTTP, modelado de recursos
- Desafíos de implementación: Diseño de URIs consistente, manejo de errores
- Implicaciones de seguridad: Autenticación, encriptación
- Obligaciones de documentación: Especificación OpenAPI
- Evaluación económica: La reutilización reduce costos de desarrollo
Estrategia de aprendizaje
- Introducción conceptual: Analiza una API conocida (por ejemplo, GitHub REST API).
- Profundización: Escribe una pequeña especificación OpenAPI (libreta de direcciones).
- Entrenamiento enfocado en evaluación: Diseña una API de productos en 15 minutos.
- Prevención de errores: Verifica la seguridad con OWASP ZAP.
Recursos principales
- https://swagger.io/specification/
- https://owasp.org/www-project-api-security/
- https://docs.github.com/rest
- https://www.postman.com/api-examples/
Más artículos sobre REST API
Las REST APIs son la base de las aplicaciones web modernas. Los siguientes artículos te ayudarán a dominar todos los aspectos del diseño y desarrollo de REST APIs.
Fundamentos y conceptos
- REST API Fundamentos: Métodos HTTP, códigos de estado - Introducción completa a los principios de REST
- Desarrollo de REST API: Fundamentos y mejores prácticas - Guía práctica para el desarrollo de APIs
- REST API Fundamentos: Richardson Maturity Model - Conceptos avanzados y niveles de madurez



