From Gcube Wiki
Jump to: navigation, search


A RESTful service providing functions for create, update, read a json object on MongoDB

Key features

The core of the service is java based. It offers a interface for performing CRUD operation through a remote backend over JSON object:

  • Create
  • Read
  • Update
  • Delete

Design and Architecture

The architecture implements a multiton pattern. The records are collected in two separated collection: the first one is a collection dedicated to a single SmartApps, the second One is a collection that collects all the records of all the smartApplications.

Access Mode

The Endpoint of the SStorageRest service can be discovered by IS-Collector service under the SmartArea VO. For accessing to the service it's needed to use the ic-client library in the following way:

import static org.gcube.resources.discovery.icclient.ICFactory.*;
XQuery query = queryFor(GCoreEndpoint.class);
query.addCondition("$resource/Profile/ServiceClass/text() eq 'content-management'");
query.addCondition("$resource/Profile/ServiceName/text() eq 'storage'");
query.addCondition("$entry/@EntryName/string() eq 'jersey-serlvet'");
DiscoveryClient<String> client = client();
List<String> addresses = client.submit(query);

The method "client.submit(query)" returns a List of resources that match the query parameters. In this case the query should return a list with only one element:


Supported Operations

  • create: implemented by http POST method;
  • read : implemented by http GET method;
  • update: implemented by http PUT method;
  • delete: implemented by http DELETE method.


We introduce the API of the SStorageRest through a set of examples.

Note that, in all the examples, we submit queries to the SStorageRest service. We then need to make sure that we do so in a given scope by a valid gcube-token

Maven artifacts

The service package is downloadable from the following nexus server:


Usage examples

To insert (create) a new record in the system, we might use:

  • POST

To read a object with ID# 33245:

Here are proposed URIs for products:

for reading, updating, deleting object with id 66432, respectively.

For deleting all the objects in the collection: