Sobes.tech
Middle

¿Qué es el modelo orientado a recursos (ROM)?

sobes.tech AI

Respuesta de la IA

El Modelo Orientado a Recursos (Resourse-Oriented Model) es un enfoque para diseñar APIs donde las entidades principales del sistema se representan como recursos, con los cuales se pueden realizar operaciones estándar como crear, leer, actualizar y eliminar (CRUD), utilizando métodos HTTP estándar.

Principios clave:

  • Recursos: Los componentes principales del sistema, que tienen un identificador único (URI). Por ejemplo, "usuario", "pedido", "producto".
  • Interfaz uniforme: Uso de métodos HTTP estándar (GET, POST, PUT, PATCH, DELETE) para realizar operaciones sobre los recursos.
  • Identificación de recursos: Cada recurso tiene un URI único.
  • Representaciones: Los recursos pueden tener diferentes representaciones (por ejemplo, JSON, XML), que son acordadas entre cliente y servidor.
  • Vínculos entre recursos (Hypermedia): Los recursos pueden contener enlaces a recursos relacionados, permitiendo al cliente navegar por la API.

Ejemplo:

// Obtener lista de usuarios
GET /users

// Obtener un usuario específico
GET /users/123

// Crear un nuevo usuario
POST /users
Content-Type: application/json

{
  "name": "Ivan",
  "email": "ivan@example.com"
}

// Actualizar usuario
PUT /users/123
Content-Type: application/json

{
  "name": "Ivan Petrov"
}

// Actualización parcial del usuario
PATCH /users/123
Content-Type: application/json

{
  "email": "ivan.petrov@example.com"
}

// Eliminar usuario
DELETE /users/123

Ventajas:

  • Simplicidad y estandarización: Fácil de entender y usar gracias al uso de tecnologías web estándar.
  • Escalabilidad: Adecuado para construir sistemas distribuidos.
  • Caché: Capacidad de cachear las representaciones de recursos para mejorar el rendimiento.
  • Independencia del cliente y del servidor: Separación entre la presentación de datos y su almacenamiento y procesamiento.

Desventajas:

  • Puede ser ineficiente para operaciones complejas que no encajan en CRUD.
  • No siempre es adecuado para servicios con estado (stateful).

ROM es la base para construir APIs RESTful.