GxRest/GxJRS/Requests

From Gcube Wiki
Revision as of 05:02, 24 April 2018 by Manuele.simi (Talk | contribs) (GXWebTargetAdapterRequest)

Jump to: navigation, search

Introduction

Types of Requests

GXHTTPRequest

GXWebTargetAdapterRequest

A basic example that sends a Post request to create a new resource:

import org.gcube.common.gxrest.response.inbound.GXInboundResponse;
import org.gcube.common.gxrest.request.GXWebTargetAdapterRequest;
import javax.ws.rs.client.Entity;
import javax.ws.rs.core.MediaType;
 
//...
GXWebTargetAdapterRequest request = 
        GXWebTargetAdapterRequest.newRequest("http://host:port/service/").from("GXRequestTest");
 
String context ="json serialization (not shown";
Map<String,String> queryParams = new WeakHashMap<>();
queryParams.put("rrURL", DEFAULT_RR_URL);
String DEFAULT_RR_URL = "url of resource registry to contact";
 
 
GXInboundResponse response = request.path("resource-manager")
		.queryParams(queryParams).withEntity(Entity.entity(context, MediaType.APPLICATION_JSON)).post();

By default, it attaches to the request the security token available in the current thread.

However, if there is the need to force a specific token to be used, it can be done by invoking the setSecurityToken() method on the request object:

GXWebTargetAdapterRequest request = 
        GXWebTargetAdapterRequest.newRequest("http://host:port/service/").from("GXRequestTest");
request.setSecurityToken("my token");

Consuming the response

GXInboundResponse response = //request
 
if (response.hasGXError()) {
	if (response.hasException()) {
		try {
			throw response.getException();
		} catch (ClassNotFoundException e) {
				//that's OK, we can tolerate this
		} catch (Exception e) {
			e.printStackTrace();
			throw e;
		}
	} else {
		//if you want to use the original response
		Response jsResponse = response.getSource();
		//then consume the response from here
	}
} else {
	if (response.hasCREATEDCode()) {
		System.out.println("Resource successfully created!");
		System.out.println("Returned message: " + response.getStreamedContentAsString());
	} else {
		System.out.println("Resource creation failed. Returned status:" + response.getHTTPCode());
		//if you want to use the original response
		Response jsResponse = response.getSource();
		//then consume the response from here
	}
}