On 28 March 2014 10:52, Ged Byrne <[email protected]> wrote: > Makes sense. So you just have the primitive operations Create, Read, > Update, Delete, Associate and Disassociate with a separate call for each? > > >
Kind of. The RO spec maps the HTTP verbs to the elements of the metamodel. This is mostly CRUD, but there's also action invocation. For an object, we have GET and PUT (and optionally DELETE, but not supported in Isis) For an object property, we have GET, PUT (ie set) and DELETE (ie clear) For an object collection, we have GET, PUT (if a set, to add a reference), POST (if a list, to add a reference) and DELETE (remove a reference) For an object action "prompt", we have GET For an object action invocation, we have GET (if query-only/safe semantics), PUT (if idempotent), POST (if non-idempotent). This in the RO v1.0 spec sect 2.3, I've also copied to our wiki [1] So, these are the basic interactions. Obviously an arbitrarily large amount of work can be done in an action invocation, but all of these most conform to the uniform interface inferred from the underlying domain objects. HTH Dan [1] https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=40506547
