Generic REST Service Call - Using Java and Wink API
Below is a Java REST service example for Generic Service call using Wink API.
Override methods according to the requirement.
/*************************************************************************
* REST Service Example
*
*************************************************************************/
import javax.ws.rs.core.MediaType;
import org.apache.wink.client.ClientConfig;
import org.apache.wink.client.ClientResponse;
import org.apache.wink.client.Resource;
import org.apache.wink.client.RestClient;
import org.apache.wink.client.handlers.BasicAuthSecurityHandler;
public class Test {
public static void main(String[] args) {
try {
//1. Execute Get Service.
Resource restClientResource = getRestClientResource("username", "password", "serviceUrl");
String responseData = executeGet(restClientResource);
//Parse/Transform data.
//2. Execute Post Service
Resource postRestClientResource = getRestClientResource("username", "password", "serviceUrl");
postRestClientResource.accept(MediaType.APPLICATION_JSON);
postRestClientResource.contentType(MediaType.APPLICATION_OCTET_STREAM);
String resultData = executePost(postRestClientResource , "postData");
//process result data.
//3. Other Service calls
} catch (Exception e) {
//Handle Error.
e.printStackTrace();
}
}
/**
* GET Service call.
* @param resource
* @return String response data
*/
public static String executeGet(Resource resource) throws Exception{
String responseResult = null;
if(resource != null){
try{
ClientResponse response = resource.get();
if(response != null){
responseResult = response.getEntity(String.class);
}else{
System.out.println("Rest response is NULL.");
}
}catch(Exception e){
System.out.println("Error occured while executing GET Service." + e.getMessage());
throw e;
}
}else{
System.out.println("Invalid resource is NULL. Can not invoke the service.");
}
return responseResult;
}
/**
* Executes Post service.
*
* @param resource
* @throws Exception
*/
public static String executePost(Resource resource, String postData) throws Exception {
String resultData = null;
String messageDesc = null;
//validate parameters
if(resource != null){
ClientResponse clientResponse = null;
try {
clientResponse = resource.post(postData);
} catch (Exception e) {
throw e;
}
if(clientResponse != null){
resultData = clientResponse.getEntity(String.class);
}else{
messageDesc = "Service response is NULL.";
}
}else{
messageDesc = "Invalid resouce object.";
}
if(messageDesc != null){
System.out.println("Throwing exception for message : "+messageDesc);
throw new Exception(messageDesc);
}
return resultData;
}
/**
* Creates REST Resource object from the Wink's ClientConfig.
* @param userName
* @param password
* @param serviceUrl
* @return Resource
*/
public static Resource getRestClientResource(String userName, String password, String serviceUrl){
Resource resource = null;
//Validate parameters.
try {
ClientConfig clientCfg = new ClientConfig();
//clientCfg.connectTimeout(300000);
//clientCfg.readTimeout(300000);
BasicAuthSecurityHandler basicAuthSH = null;
basicAuthSH = new BasicAuthSecurityHandler(userName, password);
//or basicAuthSH = new BasicAuthSecurityHandler();
basicAuthSH.setSSLRequired(false);
clientCfg.handlers(basicAuthSH);
RestClient restClient = new RestClient(clientCfg);
resource = restClient.resource(serviceUrl);
} catch (Exception e) {
System.out.println("ERROR occured while building Rest Client Resource object. " + e.getMessage());
e.printStackTrace();
}
return resource;
}
}
Comments
Post a Comment