Thursday, January 11, 2018

Web Service client code

I have been watching tutorials on Web services, especially, Restful web service ones.

The following snippet of code shows how to consume a restful webservice.

import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.client.Response;


public static void main(String[] args) {
      Client client = ClientBuilder.newClient();

// The main URL of the Restful webservice
WebTarget target = client.target("http://localhost:8080/advancedjaxrs/webapi/");
// messages could be replaced with comments or likes or whatever context needs to be fetched.
WebTarget path = target.path("messages");
// messageId is the specific id to be passed for fetch of specific message
WebTarget path2 = path.path("{messageId}");

//First way of getting a response. 
Response reponse = path2.resolveTemplate("messageId", "1").request().get();
//Read response
Message m1 = reponse.readEntity(Message.class);
System.out.println(m1.getMessage());

// Second way of reading a response - Directly, we use Message object to get a Message object.
Message message1 = path2
.resolveTemplate("messageId", "1")
.request()
.get(Message.class);

// TO check errors in response, if we map it to a String object, we can get the response as String. 
String message2 = path2
.resolveTemplate("messageId", "2")
.request()
.get(String.class);


System.out.println(message1.getMessage());
System.out.println(message2);

}