Difference between revisions of "GxRest/GxJRS/Requests"

From Gcube Wiki
Jump to: navigation, search
(GXWebTargetAdapterRequest)
(GXWebTargetAdapterRequest)
Line 6: Line 6:
  
 
= GXWebTargetAdapterRequest =
 
= GXWebTargetAdapterRequest =
 
+
A basic example that sends a Post request to create a new resource:
 
<source lang="Java">
 
<source lang="Java">
 
import org.gcube.common.gxrest.response.inbound.GXInboundResponse;
 
import org.gcube.common.gxrest.response.inbound.GXInboundResponse;
Line 13: Line 13:
 
import javax.ws.rs.core.MediaType;
 
import javax.ws.rs.core.MediaType;
  
//send a post request with content
+
//...
 +
GXWebTargetAdapterRequest request =
 +
        GXWebTargetAdapterRequest.newRequest("http://host:port/service/").from("GXRequestTest")
  
 
String context ="json serialization (not shown";
 
String context ="json serialization (not shown";
Line 21: Line 23:
  
  
GXInboundResponse response = request.path("gxrest")
+
GXInboundResponse response = request.path("resource-manager")
 
.queryParams(queryParams).withEntity(Entity.entity(context, MediaType.APPLICATION_JSON)).post();
 
.queryParams(queryParams).withEntity(Entity.entity(context, MediaType.APPLICATION_JSON)).post();
 
if (!response.hasCREATEDCode()) {
 
if (!response.hasCREATEDCode()) {
Line 39: Line 41:
 
}
 
}
  
 +
</source>
 +
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:
 +
<source lang="Java">
 +
GXWebTargetAdapterRequest request =
 +
        GXWebTargetAdapterRequest.newRequest("http://host:port/service/").from("GXRequestTest")
 +
request.setSecurityToken("my token");
 
</source>
 
</source>

Revision as of 04:40, 24 April 2018

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();
if (!response.hasCREATEDCode()) {
	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 {
	logger.info("Resource successfully created!");
	logger.info("Returned message: " + response.getStreamedContentAsString());
}

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");