users@jersey.java.net

Re: [Jersey] JAX-RS == REST? Or not? (was Re: [Jersey] What HATEOAS actually means)

From: Kevin Duffey <andjarnic_at_yahoo.com>
Date: Tue, 16 Feb 2010 12:44:13 -0800 (PST)

Excellent!! +1 here too. I've bookmarked the links, I'll check back next week to see any progress you make Felipe. I am really interested in seeing how you (and others) are going about handling the HATEOAS responses.


I am also interested in understanding more from some of the other threads about how the server does NOT maintain any state... per se... I guess I am defining state differently perhaps, but to me, if you create/update something using a URI, their is usually some database storing that data. If I add a user via a POST, the XML/JSON I send is being stored in a DB. To me, that is stateful. With the same authentication on subsequent calls, I could maintain a sort of state. Same thing with a shopping cart. If I have a cart DB table, and a user POSTs to a URI that adds an item to the cart, the logic on the back end stores that item in the cart DB table associated with the request (and the user making that request). Sure, the request/response itself is stateless.. but the Authentication header allows me to verify (on every call) a user and from that I can associate "state" using that user's authenticated info and some other table(s) for the request specific
 resourses. Am I missing some understanding about this process? Is it correct.. or is there some better more RESTful way to do this?

So definitely want to follow the wiki and see how ya'll are workign thru HATEOAS responses and maintaining a "quasi" state I suppose.

Thanks.


--- On Tue, 2/16/10, Felipe Gaúcho <fgaucho_at_gmail.com> wrote:

From: Felipe Gaúcho <fgaucho_at_gmail.com>
Subject: Re: [Jersey] JAX-RS == REST? Or not? (was Re: [Jersey] What HATEOAS actually means)
To: users_at_jersey.dev.java.net
Date: Tuesday, February 16, 2010, 3:46 AM

ok, I created two Jersey children pages:

"Samples" - that should be our catalog of examples
http://wikis.sun.com/display/Jersey/Samples

"Samples/PUJ" - my business scenario page..


I will try to be as fast as possible (probably in the weekend I find time). As soon I have the first draft out there I ask your review - I plan to use this page as sketchboard of my HATEOAS experiments. You all are invited to contribute.

Thanks for the opportunity,  and feel free to move the pages on the Jersey wiki if you prefer other names or locations.




On Tue, Feb 16, 2010 at 12:27 PM, Paul Sandoz <Paul.Sandoz_at_sun.com> wrote:

A most excellent idea. Thank you for offering to do this, your contribution is most welcome.
You can use the Jersey wiki. Anyone with an account can edit and add pages.
  http://wikis.sun.com/display/Jersey/Main

Santiago already put together a page for his ideas:
  http://wikis.sun.com/display/Jersey/Hypermedia+and+Client+APIs
I am not sure if that page is suitable to link from for what you are suggesting. I suspect we need a more general hypermedia page to link from with a set of one or more cases from which solutions can be derived.

Also since you have implemented your business case i think you have a good understand of what support Jersey can better provide to make it easier for you.

On Feb 16, 2010, at 9:56 AM, Felipe Gaúcho wrote:
Hi there,

I would like to donate my business scenario as test bed for HATEOAS implemented with JAX-RS.

What I need: a wiki page somewhere where I can describe my business case. Then I start and other people can review and rewrite the parts they believe wrong. We can have in short period of time a benchmark case. I will write down only the business scenario and the suggested resources representation.

After that, everyone can implement that case in the way they believe better, in which technology they believe better :)

Why to use my case instead of others?

1) Because the implementation of such project helps education in Brazil (http://kenai.com/projects/puj/pages/Home)

3) Because it is open-source and there are already some implementation available

* Of course, we can also think about a "catalog" where several people contribute with business scenarios, and eventually the more complete one will emerge from this brain storm.

If you like the idea, please point me the wiki I can start to write down the spec of PUJ.

* I will try this anyway, bu if I have the community attention I will get some extra push :)

thanks,

   Felipe Gaúcho



On Tue, Feb 16, 2010 at 9:50 AM, Paul Sandoz <Paul.Sandoz_at_sun.com> wrote:

The Sun Cloud API is RESTful. Trust me :-)
We need to address your point about examples, with use-cases, when we have more solid API details around hypertext and JAX-RS.
People are already developing hypertext applications using JAX-RS they are just doing the work themselves. For example, Felipe is doing just that (he a link on this list to some slides out recently). IIRC Marc, and he can confirm or deny, has developed hypertext applications in the identity space using JAX-RS, but i do not think those are public. And i am sure others have developed similar examples. 
Paul.
On Feb 16, 2010, at 8:29 AM, Kevin Duffey wrote:


I hope soon.. I would really like to know the "right way" to build HATEOAS apis. :D
I have read this extremely long thread, and am really really confused now as to what is what. I thought the Sun cloud APIs was a completely restful API design. However, this notion that the client maintains state has got me a bit confused now. I would love to see some truly RESTful examples using Jersey/JAX-RS.. how to implement for example HATEOAS in the present JAX-RS such that I can claim my API is truly RESTful and that everyone on this thread would agree on.




 
 


-- 
------------------------------------------
   10+ Java Programmer
   CEJUG Senior Advisor
-- 
------------------------------------------
   Felipe Gaúcho
   10+ Java Programmer
   CEJUG Senior Advisor