Sobes.tech
Middle

O que é o modelo orientado a recursos (ROM)?

sobes.tech IA

Resposta da IA

O Modelo Orientado a Recursos (Resourse-Oriented Model) é uma abordagem para projetar APIs onde as entidades principais do sistema são representadas como recursos, com os quais podem ser realizadas operações padrão, como criar, ler, atualizar e eliminar (CRUD), usando métodos HTTP padrão.

Princípios-chave:

  • Recursos: Os componentes principais do sistema, que têm um identificador único (URI). Por exemplo, "utilizador", "pedido", "produto".
  • Interface uniforme: Uso de métodos HTTP padrão (GET, POST, PUT, PATCH, DELETE) para realizar operações sobre os recursos.
  • Identificação de recursos: Cada recurso possui um URI único.
  • Representações: Os recursos podem ter diferentes representações (por exemplo, JSON, XML), que são acordadas entre cliente e servidor.
  • Ligações entre recursos (Hypermedia): Os recursos podem conter links para recursos relacionados, permitindo ao cliente navegar pela API.

Exemplo:

// Obter lista de utilizadores
GET /users

// Obter um utilizador específico
GET /users/123

// Criar um novo utilizador
POST /users
Content-Type: application/json

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

// Atualizar utilizador
PUT /users/123
Content-Type: application/json

{
  "name": "Ivan Petrov"
}

// Atualização parcial do utilizador
PATCH /users/123
Content-Type: application/json

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

// Eliminar utilizador
DELETE /users/123

Vantagens:

  • Simplicidade e padronização: Fácil de entender e usar graças ao uso de tecnologias web padrão.
  • Escalabilidade: Adequado para construir sistemas distribuídos.
  • Cacheamento: Possibilidade de cachear as representações dos recursos para melhorar o desempenho.
  • Independência do cliente e do servidor: Separação entre a apresentação de dados e seu armazenamento e processamento.

Desvantagens:

  • Pode ser ineficiente para operações complexas que não se encaixam no CRUD.
  • Nem sempre é adequado para serviços com estado (stateful).

O ROM é a base para construir APIs RESTful.