Book Image

RESTful Java Web Services - Third Edition

By : Balachandar Bogunuva Mohanram, Jobinesh Purushothaman
Book Image

RESTful Java Web Services - Third Edition

By: Balachandar Bogunuva Mohanram, Jobinesh Purushothaman

Overview of this book

Representational State Transfer (REST) is a simple yet powerful software architecture style to create lightweight and scalable web services. The RESTful web services use HTTP as the transport protocol and can use any message formats, including XML, JSON(widely used), CSV, and many more, which makes it easily inter-operable across different languages and platforms. This successful book is currently in its 3rd edition and has been used by thousands of developers. It serves as an excellent guide for developing RESTful web services in Java. This book attempts to familiarize the reader with the concepts of REST. It is a pragmatic guide for designing and developing web services using Java APIs for real-life use cases following best practices and for learning to secure REST APIs using OAuth and JWT. Finally, you will learn the role of RESTful web services for future technological advances, be it cloud, IoT or social media. By the end of this book, you will be able to efficiently build robust, scalable, and secure RESTful web services using Java APIs.
Table of Contents (11 chapters)

Asynchronous RESTful web service client

This section describes the usage of the asynchronous JAX-RS API on the client for calling the RESTful web APIs.

To invoke a REST API asynchronously on the client, you use javax.ws.rs.client.AsyncInvoker. The AsyncInvoker instance is obtained from the call of the Invocation.Builder.async() method, as shown in the following code:

//Other imports are omitted for brevity 
import javax.ws.rs.client.AsyncInvoker; 
import javax.ws.rs.client.Client; 
import javax.ws.rs.client.WebTarget; 
import javax.ws.rs.core.GenericType; 
import javax.ws.rs.core.Response; 
 
String BASE_URI =  
    "http://localhost:8080/hr-services/webresources";  
Client client = ClientBuilder.newClient(); 
WebTarget webTarget = 
client.target(BASE_URI).path("hr").path("departments"); AsyncInvoker asyncInvoker = webTarget.request(APPLICATION_JSON...