If you are already familiar with REST theory but are new to RESTful Java web services, and want to use the Java technology stack together with Java RESTful frameworks to create robust web services, this is the book for you.
This book is a guide to developing RESTful web services using Java and the most popular RESTful frameworks available today. It covers the theory of REST; practical coding examples for RESTful clients; a practical outline of the RESTful design process—yes, it's different from traditional web application development; and a complete implementation of a non-trivial web service using the following frameworks: Jersey's JAX-RS, Restlet's Lightweight REST, JBoss's JAX-RS RESTEasy, and Struts 2 with the REST plug-in.
We begin with an introduction to REST theory, for example, what it means for a web service to be RESTful, what it means for a web service to exchange representations of resources, and what it means to only use the conventional HTTP request method types—GET, POST, PUT, DELETE—for client/server communication. Before moving into the design and implementation process of a non-trivial web service, we look at a set of sample Java applications that connect to existing REST services that are freely available (Google, Yahoo, Twitter). We then outline a practical design process for RESTful web services and then cover the four most widely used frameworks available to date: JAX-RS implementations such as Jersey and RESTEasy, the Restlet framework, and Struts 2 with the REST plug-in. We cover each framework in detail to allow you to compare the strengths and weaknesses of each framework and to begin developing your own web services after the first reading; what's more, the whole source is included for you to modify and deploy in your own web services. Finally, we discuss the most common performance issues faced by RESTful web services and cover practical solutions to security-related issues such as authentication and data transfer.