Sobes.tech
Senior

Que tipos de API web conhece? Em que o REST difere essencialmente do RPC?

sobes.tech IA

Resposta da IA

As API web existem em diferentes tipos, sendo os principais:

  • REST (Representational State Transfer) — estilo arquitetónico que utiliza métodos HTTP (GET, POST, PUT, DELETE) para trabalhar com recursos, que são identificados por URI. O REST foca nos recursos e seus estados.
  • RPC (Remote Procedure Call) — chamada de procedimentos ou funções remotas, onde o cliente invoca métodos do servidor como se fossem locais. Normalmente, são transmitidos nomes de métodos e parâmetros.
  • GraphQL — linguagem de consultas que permite ao cliente solicitar exatamente os dados de que precisa.

Diferenças entre REST e RPC:

  • REST trabalha com recursos e seus estados, não com chamadas de funções.
  • Em REST, as operações são padronizadas por métodos HTTP, em RPC, métodos específicos com nomes são chamados.
  • REST é mais orientado à estrutura e apresentação de dados, RPC às ações.

Exemplo:

Requisição REST para obter um usuário:

GET /users/123

Requisição RPC para obter um usuário:

POST /rpc
{
  "method": "GetUser",
  "params": { "id": 123 }
}

Portanto, REST é mais declarativo e orientado a recursos, enquanto RPC foca na invocação de procedimentos.