Update Hierarchy - Partial Hierarchy Update APIs

Background

For any collection contents, to add or remove a leaf node from the hierarchy, the entire hierarchy needs to sent as part of update hierarchy request. This requires a huge amount data transfer over the network as the request is proportionate to the entire hierarchy of a collection.

Solution

In order to provide facility to add or remove children to a unit level in the hierarchy, we have the below APIs.

Add leafNodes to hierarchy : 

This API facilitates user to add list of children to a unit in the hierarchy under a collection content

PATCH: /content/v3/hierarchy/add

Request:

{
    "request": {
        "rootId" : "{collection root ID}",
		"unitId" : "{first Level parent of the children}",
		"children": [{List of children to be added}]
    }
}
Response:
{
     "id": "api.content.hierarchy.add",
     "ver": "3.0",
     "ts": "YYYY-MM-DDThh:mm:ssZ+/-nn.nn",
     "params": {
          "resmsgid": "",
          "msgid": "",
          "err": "",
          "status": "successful",
          "errmsg": ""
     },
     "responseCode": "OK",
     "result": {
          "identifier": "{root ID}"
		  "unitId" : [{List of children added}]
     }
}


Remove leafNodes from hierarchy

This API removes the list of children from a unit in the hierarchy of a collection content.

DELETE: /content/v3/hierarchy/remove

Request: 
{
    "request": {
        "rootId" : "{collection root ID}",
		"unitId" : "{first Level parent of the children}",
		"children": [{List of children to be removed}]
    }
}

Response:
{
     "id": "api.content.hierarchy.remove",
     "ver": "3.0",
     "ts": "YYYY-MM-DDThh:mm:ssZ+/-nn.nn",
     "params": {
          "resmsgid": "",
          "msgid": "",
          "err": "",
          "status": "successful",
          "errmsg": ""
     },
     "responseCode": "OK",
     "result": {
          "identifier": "{root ID}"
     }
}