jueves, 13 de noviembre de 2008

REST basics

RESTful Web Services: The Basics
Alex Rodriguez, IBM developerWorks

Representational State Transfer (REST) defines a set of architectural
principles by which you can design Web services that focus on a system's
resources, including how resource states are addressed and transferred
over HTTP by a wide range of clients written in different languages.
If measured by the number of Web services that use it, REST has emerged
in the last few years alone as a predominant Web service design model.
In fact, REST has had such a large impact on the Web that it has mostly
displaced SOAP- and WSDL-based interface design because it's a
considerably simpler style to use. REST is not always the right choice.
It has caught on as a way to design Web services with less dependence
on proprietary middleware (for example, an application server) than
the SOAP- and WSDL-based kind. And in a sense, REST is a return to the
Web the way it was before the age of the big application server, through
its emphasis on the early Internet standards, URI and HTTP. As you've
examined in the so-called principles of RESTful interface design, XML
over HTTP is a powerful interface that allows internal applications,
such as Asynchronous JavaScript + XML (Ajax)-based custom user
interfaces, to easily connect, address, and consume resources. In fact,
the great fit between Ajax and REST has increased the amount of
attention REST is getting these days. Exposing a system's resources
through a RESTful API is a flexible way to provide different kinds of
applications with data formatted in a standard way. It helps to meet
integration requirements that are critical to building systems where
data can be easily combined (mashups) and to extend or build on a set
of base, RESTful services into something much bigger.

http://www.ibm.com/developerworks/webservices/library/ws-restful/index.html
See also Roy Fielding's dissertation, Chapter 5: http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm

No hay comentarios: