If you want to consume the RestFul services you can check Wei Zhou’s posts in the documents section of the documentum developer network (Documentum) or check EMC RestFul Services — Clients JAVA by astone to see an example of how to consume the JSON directly from JAVA.
However, while developing the Android app I found that it was way easier to go the old Java-objects way, and you can do this by using GSON (or any other similar library).
First, you’ll need to create the POJOs/Beans for the classes; as we don’t have those (thanks EMC…) you’ll have to code them by yourself from the JSON responses (or use something like http://www.jsonschema2pojo.org/ to autogenerate them).
Once you have those (and the Gson libraries in your project) it is quite straightforward:
Reading a JSON response as an object:
DefaultHttpClient httpClient = new DefaultHttpClient();
//documentum user and password
String authorizationString = "Basic " + Base64.encodeToString((strUser + ":" + strPass).getBytes(), Base64.NO_WRAP);
//request the page, here we get the main repository page
HttpGet getRequest = new HttpGet(currentServer +"/repositories");
//don't forget the credentials
getRequest.setHeader("Authorization", authorizationString);
//get the response
HttpResponse getResponse = httpClient.execute(getRequest);
HttpEntity getResponseEntity = getResponse.getEntity();
Reader reader = new InputStreamReader(getResponseEntity.getContent());
//use gson to get the object
Gson gson=new Gson();
RepositoryList repoList = (RepositoryList)gson.fromJson(reader, RepositoryList.class);
Modify some property by sending a POST request:
DefaultHttpClient httpClient = new DefaultHttpClient();
//documentum user and password
String authorizationString = "Basic " + Base64.encodeToString((strUser + ":" + strPass).getBytes(), Base64.NO_WRAP);
//setting up the POST request
HttpPost postRequest = new HttpPost(currentServer+"/repositories/"+currentRepo+"/objects/"+strId);
//don't forget the credentials
postRequest.setHeader("Authorization",authorizationString);
//Create the object with the property you want to modify
RepositoryObject ro=new RepositoryObject();
Attribute props=new Attribute();
props.setSubject("new Subject");
ro.setProperties(props);
//set the header to the POST request
postRequest.setHeader("Content-Type", "application/vnd.emc.documentum+json; charset=utf-8");
//convert the object to json using gson
Gson gson=new Gson();
postRequest.setEntity(new StringEntity(gson.toJson(ro)));
//do the POST
HttpResponse postResponse = httpClient.execute(postRequest);
Note: As you can see, I’m not using service discovery although that would be the right way to do it, however, this was faster and it works as a how-to