Você está na página 1de 4

14/06/13

REST Wikipdia, a enciclopdia livre

REST
Origem: Wikipdia, a enciclopdia livre.

A Transferncia de Estado Representativo (Representational State Transfer) ou somente (REST) uma tcnica de engenharia de software para sistemas hipermdia distribudos como a World Wide Web. O termo se originou no ano de 2000, em uma tese de doutorado1 (PHD) sobre a web escrita por Roy Fielding, um dos principais autores da especificao do protocolo HTTP que utilizado por sites da internet. A REST (Transferncia do Estado Representativo) pretendida como uma imagem do design da aplicao se comportar: uma rede de websites (um estado virtual), onde o usurio progride com uma aplicao selecionando as ligaes (transies do estado), tendo como resultado a pgina seguinte (que representa o estado seguinte da aplicao) que est sendo transferida ao usurio e apresentada para seu uso.

Dr.Roy Fielding

O termo REST se referia, originalmente, a um conjunto de princpios de arquitectura (descritos mais abaixo), na actualidade se usa no sentido mais amplo para descrever qualquer interface web simples que utiliza XML e HTTP (ou YAML, JSON, ou texto puro), sem as abstraes adicionais dos protocolos baseados em padres de trocas de mensagem como o protocolo de servios web SOAP. possvel desenhar sistemas de servios web de acordo com o estilo arquitetural REST descrito por Fielding, e tambm possvel desenhar interfaces XMLHTTP de acordo com o estilo de RPC mas sem utilizar SOAP. Estes usos diferentes do termo REST causam certa confuso em discusses tcnicas, onde RPC no um exemplo de REST. Os sistemas que seguem os princpios REST so freqentemente chamados de RESTful'.

ndice
1 Princpios 2 Recursos 3 REST e RPC 4 Implementaes pblicas 5 Ver tambm 6 Referncias 7 Ligaes externas

Princpios
REST afirma que a web j desfrutou de escalabilidade como resultado de uma srie de desenhos fundamentais: Um protocolo cliente/servidor sem estado: cada mensagem HTTP contm toda a informao necessria para compreender o pedido. Como resultado, nem o cliente e nem o servidor necessitam gravar nenhum estado das comunicaes entre mensagens. Na prtica, muitas aplicaes baseadas em HTTP utilizam cookies e outros mecanismos para manter o estado da sesso (algumas destas prticas, como a reescrita de URLs, no so permitidas pela regra do REST).
pt.wikipedia.org/wiki/REST 1/4

14/06/13

REST Wikipdia, a enciclopdia livre

Um conjunto de operaes bem definidas que se aplicam a todos os recursos de informao: HTTP em si define um pequeno conjunto de operaes, as mais importantes so POST, GET, PUT e DELETE. Com frequncia estas operaes so combinadas com operaes CRUD para a persistncia de dados, onde POST no se encaixa exatamente neste esquema. Uma sintaxe universal para identificar os recursos. No sistema REST, cada recurso unicamente direcionado atravs da sua URI. O uso de hipermdia, tanto para a informao da aplicao como para as transies de estado da aplicao: a representao deste estado em um sistema REST so tipicamente HTML ou XML. Como resultado disto, possvel navegar com um recurso REST a muitos outros, simplesmente seguindo ligaes sem requerer o uso de registros ou outra infraestrutura adicional.

Recursos
Um conceito importante em REST a existncia de recursos (elementos de informao), que podem ser usados utilizando um identificador global (um Identificador Uniforme de Recurso) para manipular estes recursos, os componentes da rede (clientes e servidores) se comunicam atravs de uma interface padro (HTTP) e trocam representaes de recursos (os arquivos ou ficheiros so recebidos e enviados) - uma questo polmica e gera muito debate, sem a distino entre recursos e suas representaes demasiado utpica para seu uso prtico na rede, onde popular na comunidade RDF. O pedido pode ser transmitido por qualquer nmero de conectores (por exemplo clientes, servidores, caches, etc.) mas no poder ver mais nada do seu prprio pedido (conhecido com separao de capas, outra restrio do REST, que um princpio comum com muitas outras partes da arquitetura de redes e da informao). Assim, uma aplicao pode interagir com um recurso conhecendo o identificador do recurso e a ao requerida, no necessitando conhecer se existem caches, proxys ou qualquer outra coisa entre ela e o servidor que guarda a informao. A aplicao deve compreender o formato da informao de volta (a representao), que geralmente um documento em formato HTML ou XML, onde tambm pode ser uma imagem ou qualquer outro contedo.

REST e RPC
Uma aplicao web REST requer um enfoque de desenho diferente a uma aplicao baseada em RPCs. No RPC, se pe nfase na diversidade de operaes do protocolo, ou verbos; por exemplo uma aplicao RPC poderia definir operaes como:
g e t U s e r ( ) a d d U s e r ( ) r e m o v e U s e r ( ) u p d a t e U s e r ( ) g e t L o c a t i o n ( ) a d d L o c a t i o n ( ) r e m o v e L o c a t i o n ( ) u p d a t e L o c a t i o n ( ) l i s t U s e r s ( ) l i s t L o c a t i o n s ( ) f i n d L o c a t i o n ( ) f i n d U s e r ( )

Em REST, ao contrrio, a nfase est na diversidade de recursos, nos nomes; por exemplo, uma aplicao REST poderia definir os seguintes tipos de recursos:
pt.wikipedia.org/wiki/REST 2/4

14/06/13

REST Wikipdia, a enciclopdia livre

U s u a r i o{ } L o c a l i z a c a o{ }

Cada recurso teria seu prprio identificador, como


h t t p : / / w w w . e x a m p l e . o r g / l o c a t i o n s / u s / n y / n e w _ y o r k _ c i t y . Os clientes trabalhariam com estes

recursos atravs das operaes padro de HTTP, como o GET para chamar uma cpia do recurso. Observase como cada objeto tem sua prpria URL e pode ser facilmente cacheado, copiado e guardado como marcador. POST se utiliza geralmente para aes com efeitos laterais, como enviar uma ordem de compra. Por exemplo, o registro para um Usurio poderia ter o seguinte aspecto:
< u s u a r i o > < n o m e > M a r i aJ u a n a < / n o m e > < g e n e r o > f e m i n i n o < / g e n e r o > < l o c a l i z a c a oh r e f = " h t t p : / / w w w . e x a m p l e . o r g / l o c a t i o n s / u s / n y / n e w _ y o r k _ c i t y " > N o v aY o r k ,N Y ,U S < / l o c a l i z a c a o > < / u s u a r i o >

Para atualizar a localizao do usurio, um cliente REST poderia primeiro chamar um registro XML anterior usando GET. O cliente depois modificaria o arquivo para mudar a localizao e a subiria para o servidor utilizando HTTP PUT. Nota-se que os verbos HTTP no proporcionam nenhum recurso padro para descobrir recursos -- no h nenhuma operao LIST ou FIND em HTTP, que se corresponderiam com as operaes l i s t * ( )e f i n d * ( ) como por exemplo em RPC. Em seu lugar, as aplicaes baseadas em dados REST resolvem o problema tratando uma coleo de resultados de busca como outro tipo de recurso, o que requer que os engenheiros de software desenhem a aplicao colocando URLs adicionais para mostrar ou buscar cada tipo de recurso. Por exemplo, um pedido GET HTTP sobre a URL h t t p : / / w w w . e x a m p l e . o r g / l o c a t i o n s / u s / n y /poderia devolver uma lista de arquivos em XML com todas as localizaes possveis em Nova Iorque, e outra, um pedido GET para URL h t t p : / / w w w . e x a m p l e . o r g / u s e r s ? s e u n o m e = M i c h a e l spoderia devolver uma lista de todos os usurios com o apelido "Michaels". REST proporciona algumas indicaes sobre como realizar este tipo de ao como parte de sua restrio "hipermdia como o meio de estado da aplicao", o que sugere o uso de uma linguagem de marcao (como um formulrio HTML) para especificar consultas parametrizadas. A iniciativa OpenSearch da A9.com tenta padronizar as buscas usando REST estabelecendo especificaes para descobrir recursos e um formato genrico para utilizar sistemas baseados em REST, incluindo o RDF, XTM, Atom, RSS (e suas vrias formas) e XML com XLink para gerenciar as ligaes.

Implementaes pblicas
Dado que a definio de REST muito ampla, possvel afirmar que existe um enorme nmero de aplicaes REST na rede (praticamente qualquer coisa acessvel mediante um pedido HTTP GET). De forma mais restritiva, em contra posio aos servios web e ao RPC, REST se pode encontrar em diferentes reas da web: Na blogosfera -o universo dos blogs- est, em sua maior parte, baseado em REST, dado que implica chamar arquivos/ficheros XML (em formato RSS ou Atom) que contem listas de ligaes a outros recursos.
pt.wikipedia.org/wiki/REST 3/4

14/06/13

REST Wikipdia, a enciclopdia livre

Amazon.com oferece sua interface tanto em formato REST como em formato SOAP (sendo a verso REST a que recebe maior trfego) eBay oferece uma interface REST. O Projeto "Seniores Canada On-line" do Governo do Canad oferece um interface REST 2 . Bloglines oferece uma API baseada em REST. Yahoo! oferece uma API em REST. O mecanismo Ruby on Rails suporta aplicaes REST utilizando o padro MVC. O publicador de objetos do Zope. Os Frameworks para desenvolvimento em PHP, Zend Framework e CakePHP possuem componentes para criao de aplicaes REST. De qualquer forma, deve-se ter em mente que as aplicaes descritas acima no so totalmente escritas puramente em REST, isto , no respeitam todas as restries que impe a arquitetura REST. E sim, todas so inspiradas em REST e respeitam os aspectos mais significativos e restritivos da sua arquitetura, em particular a restrio de "interface uniforme". Estes servios so denominados "Acidentalmente RESTful"3 .

Ver tambm
XML Servios web SOAP

Referncias
1. Representational State Transfer (REST) (http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm) (em ingls) 2. Big, public REST application: Seniors Canada Online (http://www.megginson.com/blogs/quoderat/2005/03/09/public-rest-application-seniors-canada-online/) (em ingls) 3. Accidentally RESTful (http://www.markbaker.ca/blog//2005/04/14/#2005-04-amazon-next) (em ingls)

Ligaes externas
REST: Uma Arquitectura Web para Servios Web (http://www.fe.up.pt/si/publs_pesquisa.FormView? P_ID=12085) por Srgio Nunes e Gabriel David (Arquivo em PDF). Obtida de "http://pt.wikipedia.org/w/index.php?title=REST&oldid=35903579" Categoria: Programas de computador Esta pgina foi modificada pela ltima vez (s) 21h16min de 27 de maio de 2013. Este texto disponibilizado nos termos da licena Atribuio-Partilha nos Mesmos Termos 3.0 no Adaptada (CC BY-SA 3.0); pode estar sujeito a condies adicionais. Consulte as condies de uso para mais detalhes.

pt.wikipedia.org/wiki/REST

4/4

Você também pode gostar