Blog Archives
My Restful Objects talk @ DDD Exchange 2012
Every year Skillsmatter run a mini-conference on domain-driven design, and this year Eric Evans asked me to do a talk on Restful Objects.
Skillsmatter recorded the talk, Read the rest of this entry
Apache Isis and RDF – could be…
An interesting question came in on the Apache Isis mailing list, regarding Isis and its support for building apps that interact with RDF and semantic web technologies: Read the rest of this entry
Further work on the Restful Objects spec.
The Restful Objects spec – a hypermedia API for domain objects models – is getting ever closer to a v1.0.0 release. Right now it’s at 0.69.0 (pdf) (yes, there have actually been 69 versions, though some of the earliest ones are lost in the mists…)
Restful Objects (.NET) screencasts
For those interested in the work I’ve been doing on Restful Objects, you might be interested to see that Richard Pawson has recorded some screencasts on the .NET implementation of Restful Objects.
I’ve linked to them from the Restful Objects website.
The Apache Isis impl of Restful Objects currently lags behind the .NET impl, though not too far behind. Check out Isis’ online demo to see the current state.
Restful Objects spec v0.60
Work continues on the Restful Objects spec, which aims to define a set of RESTful resources, and corresponding
representations, for accessing and manipulating a domain object model.
Recent significant changes include a full description of how to use view models to encapsulate the domain entities while preserving the RESTful HATEOAS principle, and support support for blobs/clobs, in other words media types such as application/pdf, image/jpeg etc.
Feedback always welcome.
JQueryMobile demo app walk-thru
In the previous post I showed some screenshots of the simple JQueryMobile app that is hosted by the Apache Isis‘ online demo app, demonstrating one way of using the built-in Restful API. In this post, I want to look at the JQueryMobile code in a little more detail.
The app consists of a single html page, index.html, along with a number of supporting Javascript files. We start by bring in the Javascript libraries, most notably JQueryMobile and JQuery:
Read the rest of this entry
JQueryMobile on the Apache Isis’ REST API
We’re currently working towards 0.2.0 of Apache Isis (incubating), and one of the most significant new areas of functionality is the REST API that it automatically provides through the json-viewer component. As you can probably guess from the name, this viewer provides a REST interface which exposes JSON representations of the domain object models.
However, JSON representations do not a user interface make; instead the idea is that the developer will write either custom or generic UIs to consume those representations. As an example of such an app (and by way of learning a little more Javascript) I’ve put together a very simple mobile app using the recently-released JQueryMobile framework.
Apache Isis Online Demo
We’ve finally got around to putting together an online demo of Apache Isis for would-be users to quickly grok what Isis is all about. If you don’t fancy reading any further but just want to play, you can find it here.
Read the rest of this entry
jQTouch and Restful Objects (Apache Isis)
I’ve started looking into using jQTouch to build a custom UI against a Restful Objects back-end hosted in UI. These are my own notes; apologies but I haven’t annotated them…
Restful Objects v0.51 uploaded
Since my last post there’s been a couple more updates to the Restful Objects spec.
Restful Objects defines a set of RESTful resources, and corresponding representations, for accessing and manipulating a domain object model. The most up-to-date version of this specification may be downloaded from http://restfulobjects.org; as of now I’m up to v0.51.
Noteworthy changes since my last post include:
Restful Objects v0.47 uploaded
I’ve just uploaded an update – v0.47 – to the Restful Objects spec, which you can download from http://restfulobjects.org.
Noteworthy changes in this version include:
- restructured the first few chapters, in particular explicitly addressing how RO spec allows client/server to evolve separately, and refining the previous discussion about resources that represent private state vs those that represent shared state
- separated out Restful Objects’ use of existing standards vs its use of custom query parameters and standard json-properties in its representations
- moved the chapters defining the domain object representations into the chapters that define the domain object resources; the hope is that it makes the document easier to follow
- added a new “Error” representation
As ever, any constructive feedback is welcomed.
Restful Objects criticism
The Restful Objects spec drew some criticism on twitter today. I’m quite happy to get feedback so long as its constructive. Of course, the ‘net being the ‘net, that ain’t always the case. Oh well. [UPDATE: the replies to this post so far *have* been constructive... my thanks]
Since 140 characters isn’t really enough to drill down into issues and concerns, I thought I’d post some of the criticism here and attempt to answer the points. It’d be nice to think I may get some comments against this post which could help develop the spec, rather than summarily dismiss it. Whether that happens, we shall see.
Anyway, on with the criticism…
More on the Restful Objects spec

Resources and Representations
Been continuing to work on the Restful Objects spec, which aims to defines a set of RESTful resources, and corresponding JSON representations, for accessing and manipulating a domain object model.
I’ve just uploaded the current draft (v0.22) up to the Restful Objects site. There have been numerous changes since the last version, not least of which is the set of resources that it defines (see left).
Another change is that the spec now explicitly indicates that it is agnostic as to the nature of the server-side state that it exposes, in that it may be used either to expose domain entities (Customer, Order, Product) or may be used to expose use cases/commands (CheckIntoFlight, CancelOrder). So, irrespective of which view you have of how to do REST, Restful Objects aims to provide useful support.
Anyway, if any of this sounds of interest, head over to the Restful Objects site to download the latest version of the spec.
Restful Objects spec – updated
Have been continuing to develop the Restful Objects specification, which aims to map a RESTful API onto a domain object model.
The restful objects site now highlights the broad concepts, but I’ve moved the main content out into a Doc/PDF so that it’s easy to edit and to print out as a single entity. There’s also a nice little diagram showing the resources defined by the spec:
Restful Objects
Now that we have our first release of Apache Isis out of the door, I’ve been spending some time on Restful Objects, which forms the basis of the JSON viewer within Isis.
The idea of Restful Objects is to provide a standard, generic RESTful interface for domain object models, exposing representations of their structure using JSON and enabling interactions with domain object instances using HTTP GET, POST, PUT and DELETE.