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