Retrieving Associations Using WSO2 G-Reg Registry API Explained

This was a burning issue I had while implementing a client to retrieve association related data. In this post, I will be rewriting WSO2 official documentation for Association registry REST API. Without further a due let's send some requests and get some response :).

The following terms explain the meaning of the query parameters passed with the following REST URIs.
Parameter
Explanation
pathPath of the resource(a.k.a. registry path).
typeType of association. By default, Governance Registry has 8 types of association, such as usedBy, ownedBy...
startStart page number.
sizeNumber of associations to be fetched.
targetTarget resource path(a.k.a. registry path).


Please note that the { start page } and { number of records } parameters can take any value greater than or equal to 0. The { start page } and { number of records } begins with 1. If both of them are 0, then all the associations are retrieved.




Get all the Associations on a Resource

Attributes
Values
HTTP Method                
GET
Request URI/resource/1.0.0/associations?path={ resource path }&start={ start page }&size={ number of records }
HTTP Request HeaderAuthorization: Basic { base64encoded(username:password) }
ResponseIt retrieves all the associations posted on the specific resource.
ResponseHTTP 200 OK
Response Typeapplication/json

Sample Request and Response





Get Associations of Specific Type on a Given Resource

Attributes
Values
HTTP Method                 
GET
Request URI/resource/1.0.0/associations?path={ resource path }&type={ association type }
HTTP Request HeaderAuthorization: Basic { base64encoded(username:password) }
Description
It retrieves all the associations for the specific type of the given resource
ResponseHTTP 200 OK
Response Typeapplication/json

Sample Request and Response




Add Associations to a Resource

  1. Using a Json pay load

Attributes
Values
HTTP Method                 
POST
Request URI/resource/1.0.0/associations?path={resource path}
HTTP Request Header
Authorization: Basic { base64encoded(username:password) }
Content-Type: application/json
Payload[{ "type":"<type of the association>","target":"<valid resource path>"}] 
Description
It adds the array of associations passed as the payload for the source resource
ResponseHTTP 204 No Content.
Response Typeapplication/json


    2. Using Query Params


Attributes
Values
HTTP Method                 
POST
Request URI/resource/1.0.0/associations?path={resource path}&targetPath={target resource}&type={assocation type}
HTTP Request Header
Authorization: Basic { base64encoded(username:password) }
Content-Type: application/json
ResponseHTTP 204 No Content.
Response Typeapplication/json


Delete Associations on a Given Resource

Attributes
Values
HTTP Method                 
DELETE
Request URI/resource/1.0.0/association?path={resource path}&targetPath={target path}&type={association type}
Description
It deletes the association between the source and target resources for the given association type.
ResponseHTTP 204 No Content.
Response Typeapplication/json

Again this is a detailed version of WSO2 official documentation. This concludes the post. 

Comments