Restful Objects
   HOME

TheInfoList



OR:

Restful Objects is a standard covering RESTful interfaces to domain object models. The specification is published under a
Creative Commons license A Creative Commons (CC) license is one of several public copyright licenses that enable the free distribution of an otherwise copyrighted "work".A "work" is any creative material made by a person. A painting, a graphic, a book, a song/lyrics ...
.


Representations and resources defined by the standard

The standard defines a small set of
JSON JSON (JavaScript Object Notation, pronounced ; also ) is an open standard file format and data interchange format that uses human-readable text to store and transmit data objects consisting of attribute–value pairs and arrays (or other ser ...
representations covering the generic constructs in a domain object model including the following: * A list of links to domain objects * A single domain object * A property, collection, belonging to a domain object * An action that may be invoked on a domain object * An action result (which will typically include a domain object or list) * A domain service (essentially a stateless domain object) * A small number of very specific representations such as Home, Version, and User. Restful Objects also defines a standard set of resources for accessing or manipulating these representations. The specification defines which HTTP methods may be used with each resource, and their meaning. The table below shows a partial summary: Taken together the resources and representations allow the complete functionality of a domain object model to be accessed over
HTTP The Hypertext Transfer Protocol (HTTP) is an application layer protocol in the Internet protocol suite model for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web, ...
. The following diagram, taken from the specification, illustrates the relationship between the most commonly used resources and representations:


History and status

The Restful Objects specification version 1.0.0 was released in June 2012.


Framework implementations

There are three known implementations of the Restful Objects specification, all open source:
Apache Isis
(for the Java platform) * Naked Objects for .NET (for the .NET platform)
Restful Objects for Ruby
(for the Ruby platform)


Relationship to other ideas

The Restful Objects specification states that it operates at a higher-level of abstraction than other restful standards such as the
JAX-RS Jakarta RESTful Web Services, (JAX-RS; formerly Java API for RESTful Web Services) is a Jakarta EE API specification that provides support in creating web services according to the Representational State Transfer (REST) architectural pattern. ...
specifications for Java platform, or the WCF specification on .NET. There are some conceptual similarities to
Odata In computing, Open Data Protocol (OData) is an open protocol that allows the creation and consumption of queryable and interoperable REST APIs in a simple and standard way. Microsoft initiated OData in 2007. Versions 1.0, 2.0, and 3.0 are relea ...
- though Restful Objects places much more emphasis on exposing the behaviour of domain objects, not just their data. There is an overlap with the naked objects pattern, in that both are concerned with creating generic interfaces to domain objects models. But while the latter creates some kind of
user interface In the industrial design field of human–computer interaction, a user interface (UI) is the space where interactions between humans and machines occur. The goal of this interaction is to allow effective operation and control of the machine f ...
, Restful Objects creates an
API An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software Interface (computing), interface, offering a service to other pieces of software. A document or standa ...
- specifically a Restful API. The first two frameworks to implement the Restful Objects standard were both built on top of existing frameworks that implement the Naked Objects pattern.


External links

* * {{cite web, url=http://www.infoq.com/articles/Intro_Restful_Objects , title=Introducing: Restful Objects Object-oriented programming