views:

754

answers:

7

What is best/good book to learn REST ? Same time looking good REST framework in java or groovy.

+4  A: 

Restful Web Services(O'Reilly) - Its a classic on the subject.

As for choosing a framework - it really depends on what you are trying to accomplish. Some frameworks are good for something, but may not be appropriate for others. It would help if you could describe your target application.

Pranav
+8  A: 

I've been reading RESTful Web Services lately. Haven't finished it yet. But it does the best job of explaining REST that I've encountered so far.

Sam
+5  A: 

1st Framework Option:

For Java I highly recommend Restlets as a framework.

They have a really good wiki and this framework also sits very well with Spring.

2nd Framework Option:

If your using Struts2 you might want to checkout this REST plugin, its not as flexible or feature full as Restlets but does a good job for a quick POC. Further support using this by Matt Raible

JamesC
+1 restlet is a great rest framework
dfa
+1 We love it too, gives you a lot of power and functionality. A colleague at Overstock.com told me they use it to run their large e-commerce site, so it's obviously performant and reliable.
Jim Ferrans
+2  A: 

There are lots of good REST frameworks out there for Java. I would definitely recommend one that is built on top of the JSR 311 specification. This specification is the standard specification for implementing REST in Java. It seems to be very complete. More information on that API can be found here: https://jsr311.dev.java.net/

I have heard a lot of good things about Jersey. You can find it here: https://jersey.dev.java.net/.

For me, I have a mixed REST and JAX-WS (SOAP) web services. The JAX-WS stuff I implemented using Apache CXF so I chose to go with CXF's REST implementation. You can read all about it here: http://cwiki.apache.org/CXF20DOC/jax-rs.html.

Both of those options implement JSR 311. The nice thing about picking a standard is that any documentation or books on JSR 311 often will give you what you need regardless of the framework you choose.

Chris Dail
A: 

Any implementation of JAX-RS API is a great tool to start out with.

As far as learning material goes, there's obviously Roy Fielding's dissertation (which is where REST came from):

ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm

Here's a recent talk by Stefan Tilkov which has a great introduction of RESTful architecture including specific patterns/anti-patterns:

http://www.parleys.com/display/PARLEYS/Home#talk=31817742

One piece of advice - the uniform interface (GET/PUT/POST/DELETE/HEAD/OPTIONS/etc..) is all well and good but statelessness, self-descriptive messages, and 'Hypermedia As The Engine Of Application State' (HATEOAS) are all really important in understanding 'true' RESTfulness.

Mike
A: 
  1. Read RESTful Web Services.

  2. Depending on your needs, not using a framework, or rolling your own, might be sufficient. REST is remarkably simple and needs little infrastructure to support a robust implementation.

landon9720
+2  A: 

Take the time to read Roy T. Fielding's dissertation. He's the one who 'invented' REST. He also has an excellent blog where he discusses REST and some common misconceptions (check the archives).

I haven't read any books on REST, but do avoid the Wikipedia article on it as it is terribly inaccurate and misleading. Fielding himself advises against it.

Wahnfrieden