REST (Representational State Transfer) é um estilo de arquitetura de software para sistemas de hipermídia distribuídos, como a World Wide Web, utilizando simplesmente HTTP. Ele tem crescido em popularidade em relação a arquiteturas RPC tais como SOAP, devido ao intrínseco desacoplamento entre cliente e o servidor, graças à interface uniforme que estabelece entre sistemas heterogêneos.
REST (RE State Transfer) é um estilo de arquitetura que utiliza a identificação de recursos, manipulação de recursos por meio de representações; mensagens auto-descritivas e hipermídia como o engine de estado do aplicativo, para construir sistemas distribuídos que são escaláveis e flexíveis.
REST é um estilo de arquitetura para a concepção de aplicações de rede. A ideia é que, ao invés de usar mecanismos complexos, tais como CORBA, RPC ou SOAP para se conectar entre máquinas, HTTP puro é usado para fazer chamadas entre máquinas.
O termo foi introduzido e definido em 2000 por Roy Fielding em sua tese de doutorado. Fielding é um dos principais autores do Hypertext Transfer Protocol (HTTP) versões da especificação 1.0 e 1.1.
Recursos
- Transferência de estado representacional, na Wikipedia,
- Estilos arquitetônicos e o Projeto de arquiteturas de software baseadas em rede(en), a introdução de dissertação REST de Fielding, e seu esclarecimento a respeito do uso necessário de hipertexto(en) em APIs REST
- Implementação REST(en) no Google Code.
- Como pegar uma xícara de café
Exemplos
Um site RESTful api é consultado para descobrir informações sobre um usuário, especificado por uma ID numérica.
Request Type: GET
http://www.api.website.com/users/12345
Retorna, em um json formato para este exemplo:
{ "username ": " theuser " ,
"userid " : 12345,
" primeiro ": " George " ,
"último ": " Washington "}