You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by t e <te...@gmail.com> on 2008/05/23 19:59:23 UTC

Struts2 REST project

Hi all,
I've been working on a project to provide restful services using struts2:
http://code.google.com/p/fulworx/

I'm trying to gauge any interest on using any of the code / concepts in this
project for the struts rest plugin.  I believe some of the approaches I've
taken may dovetail nicely.  My goal with this was making restful development
as simple as possible.  This project is not a plugin (hence it's not in the
registry), but I'd rather it contribute to the existing plugin if possible.

Any thoughts?

Thanks,
Troy

Re: Struts2 REST project

Posted by t e <te...@gmail.com>.
Fair enough, maybe a little history would help:  This project started as a
Restlet to XWork bridge.  After a bit, I realized there were some handy
parts of Struts that I wanted to use, so I leveraged some of the Struts
knowledge (e.g. FilterDispatcher, etc) to invoke xwork.  Restlet is doing a
nice amount of work for me managing the conversations.

The @URITemplate came from one of the APIs (don't remember which), but no
associated tools are used.  I simply snagged the name of the annotation in
an attempt to be a little more conforming.    All of the annotations are
handled by the wirings in Spring (there's a page describing configurations,
but any object factory should work).  Bean descriptors (there are a few
different types, 'annotated' being one) are used to configure both the
Restlet and the Struts action components and link them together.

Yes, the above descriptor configuration will supply the @ResponseClass
information to the JaxbContext, making it able to marshall the XML
automatically.  Variations of the response are handled by decorating the xml
marshaller with a JSON or Badgerfish implementation, specified by an "alt"
parameter.

Re: A list of the useful portions for struts, some points of interest:
- caching: A Restlet eventually calls an xwork DefaultActionProxy through
restlet handlers.   Those handlers have various implementations for caching
by associating a URI with the resulting XML entity.
- general learning: different approaches give insight, or just seeing how
something was implemented might generate ideas.
- Using Restlet as a front end:  Restlet does a bit of work (multiple params
in uri, uri to restlet mapping, etc).  This project really just binds a
restlet to an action.  It probably wouldn't be much to move that
configuration (currently in a separate spring config) to the struts.xml.
- Testing framework: it was pretty easy to build in a testing framework for
the actions that runs in-memory or remotely.

There are probably other areas of interest for both probjects (for example,
this project doesn't yet use params to determine CRUD behaviors as it
should).

-Troy






On Sun, May 25, 2008 at 12:10 PM, dusty <du...@yahoo.com> wrote:

>
> Coolness for sure.  I noticed the @URITemplate annotation.  That is from
> the
> WS-REST api?  How is that implemented in your example?  Is that through
> Restlet?
>
> Is one of the values that it will automagically marshall the XML model
> based
> on the annotation @ResponseClass?  What about a List of things?
>
> These are the two areas where I think it could help the Struts2 REST
> implementation.  I think a more "native" Struts2 approach is easier rather
> than introducing Restlet in front of Struts.
>
>
>
> tdeast wrote:
> >
> > Hi all,
> > I've been working on a project to provide restful services using struts2:
> > http://code.google.com/p/fulworx/
> >
> > I'm trying to gauge any interest on using any of the code / concepts in
> > this
> > project for the struts rest plugin.  I believe some of the approaches
> I've
> > taken may dovetail nicely.  My goal with this was making restful
> > development
> > as simple as possible.  This project is not a plugin (hence it's not in
> > the
> > registry), but I'd rather it contribute to the existing plugin if
> > possible.
> >
> > Any thoughts?
> >
> > Thanks,
> > Troy
> >
> >
>
> --
> View this message in context:
> http://www.nabble.com/Struts2-REST-project-tp17432050p17461247.html
> Sent from the Struts - Dev mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
> For additional commands, e-mail: dev-help@struts.apache.org
>
>

Re: Struts2 REST project

Posted by dusty <du...@yahoo.com>.
Coolness for sure.  I noticed the @URITemplate annotation.  That is from the
WS-REST api?  How is that implemented in your example?  Is that through
Restlet?  

Is one of the values that it will automagically marshall the XML model based
on the annotation @ResponseClass?  What about a List of things?

These are the two areas where I think it could help the Struts2 REST
implementation.  I think a more "native" Struts2 approach is easier rather
than introducing Restlet in front of Struts.  



tdeast wrote:
> 
> Hi all,
> I've been working on a project to provide restful services using struts2:
> http://code.google.com/p/fulworx/
> 
> I'm trying to gauge any interest on using any of the code / concepts in
> this
> project for the struts rest plugin.  I believe some of the approaches I've
> taken may dovetail nicely.  My goal with this was making restful
> development
> as simple as possible.  This project is not a plugin (hence it's not in
> the
> registry), but I'd rather it contribute to the existing plugin if
> possible.
> 
> Any thoughts?
> 
> Thanks,
> Troy
> 
> 

-- 
View this message in context: http://www.nabble.com/Struts2-REST-project-tp17432050p17461247.html
Sent from the Struts - Dev mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org