RESTful Java Patterns and Best Practices is the second book which I have worked on and is recently published.
The convergence of social networking, cloud computing, and era of mobile applications creates a generation
of emerging technologies that allow different networked devices to communicate with each other over the Internet.
As the technology landscape evolves, today’s applications are built on the notion of producing and consuming APIs
This API based architecture enables agile development, easier adoption and prevalence, scale and integration with
applications within and outside the enterprise.
The advent of mobile applications calls for a stricter delineated client-server model. Companies building applications on IOS
and Android platform can consume the REST based API and extend and deepen their reach by combining data from multiple
platforms because of the API centric REST based architecture.
The widespread adoption of REST and JSON opens up the possibilities of applications incorporating and leveraging
functionality from other applications as needed. Popularity of REST is mainly because it enables building lightweight
simple, cost-effective modular interfaces, which can be consumed by a variety of clients.
One of the most important considerations for the apps is dealing with security. The developers building apps should not be
concerned with the user's credentials. .The clients can be acting on behalf of other users and must be authorized to perform
actions for them without the user having to share his credentials for username and password.This is where the OAuth 2.0
specification comes into picture.
Another important aspect to consider when building distributed applications is traceability, which will involve logging the
data related to requests for debugging purposes in an environment encompassing multiple micro services, which can be
geographically distributed and deal with thousands of requests.
Similarly caching, rate-limiting, validation and exception handling as well as asynchronous processing are essential
elements to be considered when building RESTful services. Micro services based architecture comprises of breaking
a monolithic application into fine grained services which can provide benefits of simplicity, separation of concerns,
isolation of problems, independent scale up and scale down thus providing the foundation for a resilient architecture.
RESTful Java Patterns and Best Practices aims to cover all these topics in detail with code samples using JAX-RS
along with best practices and case studies from the ubiquitous platforms like Facebook, GitHub, Twitter, PayPal etc.
What this book will cover
- How to build RESTful web services using JAX-RS 2.0 API
- Gain insights into techniques related to versioning, error handling, response codes in REST
- Clarify advanced topics related to SAML and OAUTH 2.0, similarities between SAML and 3-legged OAuth
as well as best practices for OAuth
- Discuss caching techniques, validation, rate-limiting, asynchronous operations and other best practices
to improve application responsiveness
- Review best practices for logging, pagination, documentation, testing of RESTful services.
- Show how highly available cloud applications tend to move to a networked component model where
applications are decomposed into micro services, which can be deployed and scaled independently
- Cover the future of REST and evolving standards along with case studies on how different enterprises use them
- Compare and contrast other technologies like WebHooks, WebSockets and Server-Sent Events for delivering real time data to clients
- Compare REST API from Twitter, GitHub, Facebook and others
Who this book is for
RESTful Java Patterns and best practices, is a practical, hands-on guide that provides you with clear and pragmatic
information to take advantage of the real power of RESTful services and gives you a good foundation for using them
in your applications. The book is aimed at novice developers who want to gain insights in building RESTful services as well
as advanced developers who want to delve into complicated topics.
A step-by-step approach to build complex RESTful services for the real world applications explained
in a conversational and easy-to-follow style. Each topic is explained sequentially and scrupulously by building
on ideas and discussions covered in previous chapters, thus tying the concepts neatly together