0% found this document useful (0 votes)
34 views

Consuming REST APIs With RESTEasy Client

This document discusses how to build a REST client in Java to consume REST APIs using RESTEasy. It explains the necessary dependencies and provides examples of making GET and POST requests to access APIs and handle responses.

Uploaded by

arti09
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
34 views

Consuming REST APIs With RESTEasy Client

This document discusses how to build a REST client in Java to consume REST APIs using RESTEasy. It explains the necessary dependencies and provides examples of making GET and POST requests to access APIs and handle responses.

Uploaded by

arti09
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 4

Consuming REST APIs with RESTEasy

Client

https://howtodoinjava.com/resteasy/resteasy-client-for-consuming-rest-apis/

So far in this blog, we have been learning about building RESTful webservices which are
server side components. In this post, we will learn to build a RESTful client for consuming
the webservices written in previous posts.

I will be re-using the code base written for RESTEasy + JAXB xml example.

The APIs which I will be accessing are as defined.

@GET

@Path("/users/{id}")

public User getUserById (@PathParam("id") Integer id)

  User user = new User();

  user.setId(id);

  user.setFirstName("demo");

  user.setLastName("user");

  return user;

 
@POST

@Path("/users")

public User addUser()

   //Some code

To build a RESTful client using client capabilities of JAX-RS RESTEasy, follow given
instruction.

1) Verify following RESTEasy dependencies

<!-- core library -->


<dependency>

  <groupId>org.jboss.resteasy</groupId>

   <artifactId>resteasy-jaxrs</artifactId>

  <version>2.3.1.GA</version>

</dependency>

<dependency>

  <groupId>net.sf.scannotation</groupId>

  <artifactId>scannotation</artifactId>

  <version>1.0.2</version>

</dependency>

<!-- JAXB provider -->

<dependency>

  <groupId>org.jboss.resteasy</groupId>

  <artifactId>resteasy-jaxb-provider</artifactId>

  <version>2.3.1.GA</version>

</dependency>

2) Write the client code to access the GET API as below

public static void sampleResteasyClientGETRequest() throws Exception

  //Define the API URI where API will be accessed

  ClientRequest request = new


ClientRequest("http://localhost:8080/RESTfulDemoApplication/user-
management/users/10");

   

  //Set the accept header to tell the accepted response format

  request.accept("application/xml");

   

  //RESTEasy client automatically converts the response to desired objects.

  //This is how it is done.

  //Populate the response in user object

  ClientResponse<User> response = request.get(User.class);

   

  //First validate the api status code


  int apiResponseCode = response.getResponseStatus().getStatusCode();

  if(response.getResponseStatus().getStatusCode() != 200)

  {

    throw new RuntimeException("Failed with HTTP error code : " +


apiResponseCode);

  }

   

  //Get the user object from entity

  User user = response.getEntity();

   

  //verify the user object

  System.out.println(user.getId());

  System.out.println(user.getFirstName());

  System.out.println(user.getLastName());

3) Write the client code to access the POST API as below

public static void sampleResteasyClientPostRequest() throws Exception

  User user = new User();

  user.setId(100);

  user.setFirstName("Lokesh");

  user.setLastName("Gupta");

   

  StringWriter writer = new StringWriter();

  JAXBContext jaxbContext = JAXBContext.newInstance(User.class);

  Marshaller jaxbMarshaller = jaxbContext.createMarshaller();

  jaxbMarshaller.marshal(user, writer);

   

  //Define the API URI where API will be accessed

  ClientRequest request = new


ClientRequest("http://localhost:8080/RESTfulDemoApplication/user-
management/users");

   
  //Set the accept header to tell the accepted response format

  request.body("application/xml", writer.getBuffer().toString());

   

  //Send the request

  ClientResponse response = request.post();

   

  //First validate the api status code

  int apiResponseCode = response.getResponseStatus().getStatusCode();

  if(response.getResponseStatus().getStatusCode() != 201)

  {

    throw new RuntimeException("Failed with HTTP error code : " +


apiResponseCode);

  }

Source code download

Happy Learning !!

You might also like