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