Deploy Isis as a RESTful web service

REST (Representation State Transfer) is an architectural style for building highly scalable distributed systems, using the same principles as the World Wide Web. Many commercial web APIs (twitter, facebook, Amazon) are implemented as either pure REST APIs or some approximation therein.

The Restful Objects specification defines a means by a domain object model can be exposed as RESTful resources using JSON representations over HTTP. Isis JSON viewer is an implementation of that spec, making any Isis domain object automatically available via REST.

There are two main use cases for deploying Isis as a RESTful web service are:

  • to allow a custom UI to be built against the RESTful API

    For example, using Javascript/JQuery, or an RIA technology such as Flex, JavaFX, Silverlight

  • to enable integration between systems

    REST is designed to be machine-readable, and so is an excellent choice for synchronous data interchange scenarios. It can also be of use for system migrations (by wrapping old and new systems in REST, and using HTTP 301 redirects back to the client).

Isis persistence

The easiest way to deploy Isis as a RESTful web service is using Isis' own persistence mechanisms. These are provided by the default runtime, and offer in turn a number of object stores.

Custom persistence

Isis persistence API is pluggable, so if it does not provide the integration already then you could implementing to its object store API.

At the time of writing (v0.2.0) the RESTful viewer has a hard-coded dependency on Isis Default Runtime; this means that it cannot easily be hosted on your own framework (in conjunction with the Embedded Runtime. In the future we hope to break this dependency, allowing you to use the RESTful viewer with any persistence framework.