You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Dan Haywood <da...@haywood-associates.co.uk> on 2011/09/18 20:23:19 UTC

REST and Domain-Driven Apps.

Hi all,
This is a slightly speculative posting; apologies if this isn't relevant 
to you.

I'm a committer on Apache Isis [1], which is a framework for rapidly 
developing domain-driven apps.  One of the features we're currently 
working on is to provide a module that automatically exposes a domain 
object model via a set of RESTful resources, using REST.  Because this 
is a framework-agnostic API, we've chosen to define this as a standalone 
spec, called "Restful Objects".  In fact, in addition to Apache Isis (on 
Java) there is another framework (on .NET) that will also be 
implementing the API.

I'm guessing that some people reading this mailing list are using Axis 
to develop REST.  So, if that's you and you have some thoughts on how 
REST should be implemented, then I'd really appreciate any review 
comments you might have on the spec.

The spec is downloadable from http://restfulobjects.org, in PDF (and 
other) formats.

Thanks

Dan Haywood
Apache Isis

[1] http://incubator.apache.org/isis


Re: REST and Domain-Driven Apps.

Posted by Dan Haywood <da...@haywood-associates.co.uk>.
On 19 September 2011 12:48, Martin Gainty <mg...@hotmail.com> wrote:

>
> does ISIS architecture support REST requirements?
>

yes, in that it will implement the "Restful Objects" spec [1] that I
referenced in my post.



> If so ..how?
> Client–server <http://en.wikipedia.org/wiki/Client%E2%80%93server>
>
yes - over HTTP.

Stateless <http://en.wikipedia.org/wiki/Stateless_server>
>
yes - in that it is over HTTP and does not use sessions or anything nasty
like that.

That said, some representations of domain objects generated will vary by
user; user #1 might not be able to access a domain object member, whereas
user #2 may.



> Cacheable <http://en.wikipedia.org/wiki/Cache>
>
yes - in that each representation should indicate whether it is cached.  The
spec recommends (and Isis will implement) that domain model metadata is
cached for 1 day, and domain objects that act as reference data are also
cached.  However, transactional mutable domain objects should not be cached
- the spec indicates this and Isis will implement.


> Layered system <http://en.wikipedia.org/wiki/Layered_system>
>
yes - the RESTful resources act as one discrete layer, the domain model is
another discrete layer.  This follows on from Isis' hexagonal architecture
[2].


> Code on demand (optional)<http://en.wikipedia.org/wiki/Client-side_scripting>
>
Isis' metamodel is flexible enough that this could be added; alternatively
it could be implemented by - say - a Javascript-based client.



> Uniform interface<http://en.wikipedia.org/wiki/Representational_state_transfer#Guiding_principles_of_a_REST_interface>
>
yes - and there's a lot of emphasis on this.  Indeed, this is a natural
consequence of there being an underlying metamodel that describes the nature
of the domain objects being exposed via REST.


Hope that helps.

Dan
[1]  http://restfulobjects.org
[2] http://incubator.apache.org/isis


?Martin Gainty
> ______________________________________________
> Verzicht und Vertraulichkeitanmerkung/Note de déni et de confidentialité
>
> Diese Nachricht ist vertraulich. Sollten Sie nicht der vorgesehene
> Empfaenger sein, so bitten wir hoeflich um eine Mitteilung. Jede unbefugte
> Weiterleitung oder Fertigung einer Kopie ist unzulaessig. Diese Nachricht
> dient lediglich dem Austausch von Informationen und entfaltet keine
> rechtliche Bindungswirkung. Aufgrund der leichten Manipulierbarkeit von
> E-Mails koennen wir keine Haftung fuer den Inhalt uebernehmen.
>
> Ce message est confidentiel et peut être privilégié. Si vous n'êtes pas le destinataire prévu, nous te demandons avec bonté que pour satisfaire informez l'expéditeur. N'importe quelle diffusion non autorisée ou la copie de ceci est interdite. Ce message sert à l'information seulement et n'aura pas n'importe quel effet légalement obligatoire. Étant donné que les email peuvent facilement être sujets à la manipulation, nous ne pouvons accepter aucune responsabilité pour le contenu fourni.
>
>
>
>
> Date: Sun, 18 Sep 2011 19:23:19 +0100
> From: dan@haywood-associates.co.uk
> To: java-user@axis.apache.org
> Subject: REST and Domain-Driven Apps.
>
>
> Hi all,
> This is a slightly speculative posting; apologies if this isn't relevant
> to you.
>
> I'm a committer on Apache Isis [1], which is a framework for rapidly
> developing domain-driven apps.  One of the features we're currently
> working on is to provide a module that automatically exposes a domain
> object model via a set of RESTful resources, using REST.  Because this
> is a framework-agnostic API, we've chosen to define this as a standalone
> spec, called "Restful Objects".  In fact, in addition to Apache Isis (on
> Java) there is another framework (on .NET) that will also be
> implementing the API.
>
> I'm guessing that some people reading this mailing list are using Axis
> to develop REST.  So, if that's you and you have some thoughts on how
> REST should be implemented, then I'd really appreciate any review
> comments you might have on the spec.
>
> The spec is downloadable from http://restfulobjects.org, in PDF (and
> other) formats.
>
> Thanks
>
> Dan Haywood
> Apache Isis
>
> [1] http://incubator.apache.org/isis
>
>
> --------------------------------------------------------------------- To
> unsubscribe, e-mail: java-user-unsubscribe@axis.apache.org For additional
> commands, e-mail: java-user-help@axis.apache.org
>

RE: REST and Domain-Driven Apps.

Posted by Martin Gainty <mg...@hotmail.com>.
Hi Dan

does ISIS architecture support REST requirements?
If so ..how?
Client–serverStatelessCacheableClient–serveeStatelessCacheableLayered systemCode on demand (optional)Uniform interfaceLayered systemCode on demand (optional)Uniform interface?
Martin Gainty 
______________________________________________ 
Verzicht und Vertraulichkeitanmerkung/Note de déni et de confidentialité
 
Diese Nachricht ist vertraulich. Sollten Sie nicht der vorgesehene Empfaenger sein, so bitten wir hoeflich um eine Mitteilung. Jede unbefugte Weiterleitung oder Fertigung einer Kopie ist unzulaessig. Diese Nachricht dient lediglich dem Austausch von Informationen und entfaltet keine rechtliche Bindungswirkung. Aufgrund der leichten Manipulierbarkeit von E-Mails koennen wir keine Haftung fuer den Inhalt uebernehmen.
Ce message est confidentiel et peut être privilégié. Si vous n'êtes pas le destinataire prévu, nous te demandons avec bonté que pour satisfaire informez l'expéditeur. N'importe quelle diffusion non autorisée ou la copie de ceci est interdite. Ce message sert à l'information seulement et n'aura pas n'importe quel effet légalement obligatoire. Étant donné que les email peuvent facilement être sujets à la manipulation, nous ne pouvons accepter aucune responsabilité pour le contenu fourni.


Date: Sun, 18 Sep 2011 19:23:19 +0100
From: dan@haywood-associates.co.uk
To: java-user@axis.apache.org
Subject: REST and Domain-Driven Apps.

Hi all,
This is a slightly speculative posting; apologies if this isn't relevant 
to you.
 
I'm a committer on Apache Isis [1], which is a framework for rapidly 
developing domain-driven apps.  One of the features we're currently 
working on is to provide a module that automatically exposes a domain 
object model via a set of RESTful resources, using REST.  Because this 
is a framework-agnostic API, we've chosen to define this as a standalone 
spec, called "Restful Objects".  In fact, in addition to Apache Isis (on 
Java) there is another framework (on .NET) that will also be 
implementing the API.
 
I'm guessing that some people reading this mailing list are using Axis 
to develop REST.  So, if that's you and you have some thoughts on how 
REST should be implemented, then I'd really appreciate any review 
comments you might have on the spec.
 
The spec is downloadable from http://restfulobjects.org, in PDF (and 
other) formats.
 
Thanks
 
Dan Haywood
Apache Isis
 
[1] http://incubator.apache.org/isis
 

---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@axis.apache.org
For additional commands, e-mail: java-user-help@axis.apache.org