Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

The Governance REST API is one of many APIs supported by WSO2 Governance Registry. Read more on  Supported APIs and Standards  for a complete list of APIs supported by WSO2 Governance Registry.

...

 

Info
At the moment REST API only supports configurable governance artifacts. Support for Content artifacts such as WSDL and Policy are limited. Future versions of REST API will equally support both types of artifacts.

You must send valid HTTP BasicAuth credentials when invoking the REST API.

 

See the sections below for information relating to invoking the REST API after generating the access token and some sample requests and complete URI formats:

Assets

Endpoints

Panel
borderColor#FFFFFF
bgColor#FFFFFF

Anchor
assets
assets
Assets

Following are the REST API functions that are related to assets.

Localtabgroup
verticaltrue
Localtab
idtab1
titleGet a list of available artifact types
Syntax  GET /governance/types/
ExampleGET https://localhost:9443/governance/types/
Sample cURL Commandcurl -X GET -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "Cache-Control: no-cache" "https://localhost:9443/governance/types/" -i -k
Localtab
idtab2
titleGet a list of assets of a certain type
Syntax  
  • GET /governance/<asset_short_name_s>
  • GET /governance/<asset_short_name_s>?query 

 

 

Warning

WSO2 G-Reg does not support date range searches in Governance REST API.

QueryDescriptions
xyz

Looks for artifacts with name 'xyz'.

Info
  • You can give only the value like above or give the field name and the value in a key-value pair for fields of the Overview table in the asset RXT file. (e.g. name=xyz)
  • However, to find assets with a specific value for a field in a table other than the Overview table, the search query should be:
    encode(table_name:field_name)=encode(value)
    For example, if the table is docLinks, the field is documentType and the value is 'the rest1'. The final URI query parameter should be: docLinks%3AdocumentType=the%20rest1
  • If you have spaces or any special characters such as underscore or slash in the key of the key-value pair of your query URL, you need to encode it using a URL encoder.
xyz&version=1.3.5Looks for artifacts with name 'xyz' and version 1.3.5.
tags=abc Searches artifacts with tag 'abc'.
lcState=development&lcName=ServiceLifeCycleSearches artifacts with an associated life cycle name ServiceLifeCycle with state 'development'.
country=usaLooks for all the artifacts having attribute country with value 'usa'. This internally handles whether country is an RXT attribute or a property.
version=1.3.5&mediaType=application/vnd.wso2-soap-service+xmlSearches only soap services with version 1.3.5.
Example(s)
Sample cURL Command(s)
Localtab
idtab3
title Get an individual asset of a certain type
Syntax  GET /governance/<asset_short_name_s>/UUID 
ExampleGET https://localhost:9443  /governance/restservices/3245se24553  
Sample cURL Command

curl -X GET -H "Cache-Control: no-cache" " https://localhost:9443/governance/restservices/cae93ba9-9543-43be-9f30-bb96cec3c443 " -i -k

Localtab
idtab4
titleCreate a new asset
Syntax  

POST /governance/<asset_short_name_s> <payload>

The payload should be in JSON format. Following are the required attributes.

  • name
  • version
  • type

Payload format is as follows:

 

Code Block
{
name: "Artifact Name",
type: "Artifact Type",
version: “Version Number",
Attribute-N: “Attribute-N” value
} 
Example
Code Block
languagejava
POST   https://localhost:9443 /governance/restservices      
{
name: "TestRESTService",
type: "restservice",
context: "/test",
version: "1.0.0"
}
Sample cURL Command
Code Block
languagejava
curl -X POST -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "Content-Type: application/json" -H "Cache-Control: no-cache" -d '{
   "name":"TestRESTService",
   "type":"restservice",
   "context":"/test",
   "version":"1.0.0"
}' "https://localhost:9443/governance/restservices" -i -k
Response

If the artifact creation is successful, the server will return HTTP 200 code along with the “location” header pointing to the newly created artifact. If there is an issue creating a new artifact, it will return an appropriate error code.  

For example, the above example may return the following:

HTTP 200

Location:  https://localhost:9443/governance/restservices/3ec1dcd9-66d8-41da-a0d2-ec171df64cc3

Localtab
idtab5
titleUpdate an existing asset
Syntax  

PUT /governance/<asset_short_name_s>/uuid<payload>

Here the payload should be in JSON format. Following are the required attributes.

  • name
  • version
  • type

Payload format is as follows: 

 

Code Block
{
name: "Artifact Name",
type: "Artifact Type",
version: “Version Number",
Attribute-N: “Attribute-N” value
}
Example
Code Block
languagejava
PUT   https://localhost:9443 /governance/restservices/324dsdwa535   
{
name: "TestRESTService",
type: "restservice",
context: "/test-new",
version: "1.0.0",
}
Sample cURL Command
Code Block
languagejava
curl -X PUT -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "Content-Type: application/json" -H "Cache-Control: no-cache" -d '{
  "name":"TestRESTService",
  "type":"restservice",
  "context":"/test",
  "version":"1.0.0",
  "description": "Discription added by Rest API"
}' "  https://localhost:9443/governance/restservices/97bdb275-2b09-4744-b29f-125cf2c8e387  " -i -k
ResponseIf the artifact creation is successful, the server will return HTTP 201 code along with the “location” header pointing to the newly created artifact. If there is an issue creating the new artifact, it will return an appropriate error code.
Localtab
idtab6
titleDelete an asset
Syntax  DELETE /governance/<asset_short_name_s>/UUID 
ExampleDELETE https://localhost:9443 /governance/restservices/3245se24553
Sample cURL Commandcurl -X DELETE -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "Cache-Control: no-cache" "https://localhost:9443/governance/restservices/97bdb275-2b09-4744-b29f-125cf2c8e387" -i -k
Localtab
idtab7
titleGet lifecycle state of an asset
Syntax  
  • GET /governance/<RXT_short_name_s>/uuid/states
  • GET /governance/<RXT_short_name_s>/uuid/states?lc=LCName 
Example(s)
Sample cURL Command(s)
Localtab
idtab8
titleUpdate lifecycle state of an asset
Syntax  

PUT  /governance/<RXT_short_name_s>/uuid/states < payload>

Payload format is as follows: 

Code Block
languagejava
{lc: "Lifecycle name",
 action: "Promote",
 check_item_N : "value_N",                 
} 

 

 

Example

 

 

Sample cURL Command
Code Block
languagejava
curl -X PUT -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "Content-Type: application/json" -H "Cache-Control: no-cache" -d '{ 
  "lc":"ServiceLifeCycle", 
  "action":"Promote", 
  "item_0":"true", 
  "item_1":"true", 
  "item_2":"true" 
 }' "https://localhost:9443/governance/restservices/cae93ba9-9543-43be-9f30-bb96cec3c443/states" -i -k
Panel
borderColor#FFFFFF
bgColor#FFFFFF

Anchor
endpoints
endpoints
Endpoints

Following are the REST API functions that are related to assets.

 

Localtabgroup
verticaltrue
Localtab
idtab9
titleGet all endpoints
Syntax  GET /governance/endpoints
ExampleGET  https://localhost:9443/governance/endpoints
Sample cURL Commandcurl -X GET -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "Cache-Control: no-cache"   "https://localhost:9443/governance/endpoints" -i -k
Localtab
idtab10
titleGet an individual endpoint
Syntax  GET /governance/endpoints/UUID
ExampleGET  https://localhost:9443/governance/endpoints/c7d6ed67-f2f5-409f-97f2-ddff9b6bc07b
 
Sample cURL Commandcurl -X GET -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "Cache-Control: no-cache" "https://localhost:9443/governance/endpoints/c413e38b-16fa-4c49-ac03-927f878e8e59" -i -k
Localtab
idtab11
titleCreate new endpoint
Syntax  

Syntax 1:   GET /governance/endpoints <payload>  

Tip

It is also possible to create an endpoint and associate it with other types of artifacts such as REST services or SOAP services as presented in Syntax 2 below.

Syntax 2:

  • GET /governance/endpoints/restservices/<UUID>  <payload> 
  • GET /governance/endpoints/restservices?Query  <payload> 

Here the payload should be in JSON format.Following are the required attributes:

  • name
  • version
  • type

Payload format is as follows:

 

Code Block
 

 

 

Example(s)
Code Block
languagejava
titleExample 1
 
Code Block
languagejava
titleExample 2
 
Code Block
languagejava
titleExample 3
 
Sample cURL Command(s)
Code Block
languagejava
titleSample cURL Command 1
 
Code Block
languagejava
titleSample cURL Command 2
 
Code Block
languagejava
titleSample cURL Command 3
 
ResponseIf the artifact creation is successful, the server will return HTTP 201 code along with the “location” header pointing to the newly created artifact. If there is an issue creating the new artifact, it will return an appropriate error code.  
Localtab
idtab12
titleDelete an endpoint
Syntax  DELETE /governance/endpoints/uuid 
ExampleDELETE  https://localhost:9443/governance/endpoints/73cc7077-d723-44a5-98e5-945795e518e8
Sample cURL Command

curl -X DELETE -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "Cache-Control: no-cache" "https://localhost:9443/governance/endpoints/6652d672-d7f5-4a13-9d6f-9a6eb85675a5"-i -k

Localtab
idtab13
titleGet the status of an endpoint
Syntax  GET  /governance/endpoints/<uuid>/states
ExampleGET https://localhost:9443/governance/endpoints/c7d6ed67-f2f5-409f-97f2-ddff9b6bc07b/states
Sample cURL Command

curl -X GET -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "Cache-Control: no-cache" "https://localhost:9443/governance/endpoints/6652d672-d7f5-4a13-9d6f-9a6eb85675a5/states" -i -k

Localtab
idtab14
titleActivate an endpoint
Syntax  POST  /governance/endpoints/activate/<uuid>
ExamplePOST https://localhost:9443/governance/endpoints/activate/c7d6ed67-f2f5-409f-97f2-ddff9b6bc07b
Sample cURL Command

curl -X POST -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "Cache-Control: no-cache" "https://localhost:9443/governance/endpoints/activate/6652d672-d7f5-4a13-9d6f-9a6eb85675a5"  -i -k

Localtab
idtab15
titleDeactivate an endpoint
Syntax  POST /governance/endpoints/deactivate/<uuid>
ExamplePOST  https://localhost:9443/governance/endpoints/deactivate/c7d6ed67-f2f5-409f-97f2-ddff9b6bc07b  
Sample cURL Command

curl -X GET -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "Cache-Control: no-cache" "https://localhost:9443/governance/endpoints/deactivate/6652d672-d7f5-4a13-9d6f-9a6eb85675a5" -i -k

Localtab
idtab16
titleGet an endpoint of a certain artifact instance
Syntax  GET  /governance/<asset_short_name_s>/<id>/endpoints
ExampleGET  https://localhost:9443/governance/restservices/cea0c482-4280-4837-8126-3fd97cdc0a41/endpoints
Sample cURL Command

curl -X GET -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "Cache-Control: no-cache" "https://localhost:9443/governance/restservices/cae93ba9-9543-43be-9f30-bb96cec3c443/endpoints" -i -k