...
The Governance REST API
...
is an API that is supported by WSO2 Governance Registry.
...
The Governance REST API uses the GET, POST, PUT, and DELETE operations of the well-defined HTTP protocol to
...
perform CRUD operations on the governance registry. You can use any REST client to send API requests, such as Google Chrome's Advanced REST client
...
.
Info |
---|
At the moment REST API only supports configurable governance artifacts and has limited support for Content artifacts such as WSDL and Policy. |
Security Requirements
You must send valid HTTP BasicAuth credentials when invoking the REST API as shown below.
...
...
Following sections
...
include information on sample requests and complete URI formats used when invoking the REST
...
APIs after generating the access
...
token:
Table of Contents | |||
---|---|---|---|
|
...
|
Assets
Get a list of available artifact types
...
Syntax | GET /governance/types/ |
---|---|
Example | GET https://localhost:9443/governance/types/ |
Sample cURL Command | curl -X GET -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "Cache-Control: no-cache" "https://localhost:9443/governance/types/" -i -k |
Get list of assets of certain type
Syntax |
|
---|---|
Supported Query Format |
...
|
...
|
...
|
...
|
...
|
...
|
...
| ||
Example |
---|
...
| |
Sample cURL Command |
|
---|
...
Syntax GET /governance/<asset_short_name_s>/UUID Example GET 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
- Create a new asset
Syntax POST /governance/<asset_short_name_s> <payload> Example 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 }
For example;
Code Block language java POST
...
https://localhost:9443 /governance/restservices
...
{ name: "TestRESTService", type: "restservice", context: "/test", version: "1.0.0" }
Sample cURL Command 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"
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
- Update an existing asset
Syntax PUT /governance/<asset_short_name_s>/uuid<payload> Example 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 }
For example;
Code Block language java PUT
...
https://localhost:9443 /governance/restservices/324dsdwa535
...
...
{ name: "TestRESTService", type: "restservice", context: "/test-new", version: "1.0.0", }
Sample cURL Command 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
Response If 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. - Delete an asset
Syntax DELETE /governance/<asset_short_name_s>/UUID
...
Example DELETE https://localhost:9443 /governance/restservices/3245se24553 Sample cURL Command curl -X DELETE -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "Cache-Control: no-cache" "https://localhost:9443/governance/restservices/97bdb275-2b09-4744-b29f-125cf2c8e387" -i -k - Get 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 - GET https://localhost:9443 /governance/restservices/44dadw4/states
- GET https://localhost:9443 /governance/restservices/44dadw4/states?lc=ServiceLifeCycle
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/states" -i -k
- curl -X GET -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "Cache-Control: no-cache" "https://localhost:9443/governance/restservices/cae93ba9-9543-43be-9f30-bb96cec3c443/states?lc=ServiceLifeCycle" -i -k
- Update lifecycle change of an asset
Syntax PUT /governance/<RXT_short_name_s>/uuid/states
...
payload
Payload format
{
lc: "Lifecycle name",
action: "Promote",
check_item_N : "value_N",
}Example PUT https://localhost:9443/governance/restservices/cea0c482-4280-4837-8126-3fd97cdc0a41/states
{
lc: "ServiceLifeCycle",action: "Promote",
item_0 : "true",
item_1 : "true",
item_2 : "true"
}Sample cURL Command 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
Endpoints
- Get all endpoints
Syntax
...
GET /governance/endpoints Example
...
GET https://localhost:9443/governance/endpoints Sample cURL Command curl -X GET -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "Cache-Control: no-cache" "https://localhost:9443/governance/endpoints" -i -k - Get an individual endpoint
Syntax GET /governance/endpoints/UUID Example GET https://localhost:9443/governance/endpoints/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/c413e38b-16fa-4c49-ac03-927f878e8e59" -i -k - Create 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>
Example 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: "endpoint", version: “Version Number", Attribute-N: “Attribute-N” value }
Code Block language java title Example 1 POST
...
https://localhost:9443/governance/endpoints/
...
{ name: "endpoint-1", type: "endpoint", version: "1.0.0", address: "https://localhost:9443", environment: "QA" }
...
Example 2:
POST https://localhost:9443/governance/endpoints/restservices/cea0c482-4280-4837-8126-3fd97cdc0a41
{
name: "endpoint-2",
type: "endpoint",
version: "1.0.0",
address: "https://localhost:9443",
environment: "QA"
}
Example 3:POST https://localhost:9443/governance/endpoints/restservices?name=TestRESTService2&version=1.0.0
{
name: "endpoint-3",
type: "endpoint",
version: "1.0.0",
address: "https://localhost:9443",
environment: "QA"
}
Sample cURL Command Sample cURL Command 1:
Code Block language java curl -X POST -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "Content-Type: application/json" -H "Cache-Control: no-cache" -d '{
...
"name":"endpoint-1",
...
"type":"endpoint",
...
"version":"1.0.0",
...
"address":"https://localhost:9443",
...
"environment":"QA" }
Sample cURL Command 2:
Code Block language java curl -X POST -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "Content-Type: application/json" -H "Cache-Control: no-cache" -d '{
...
"name":"endpoint-2",
...
"type":"endpoint",
...
"version":"1.0.0",
...
"address":"https://localhost:9443",
...
"environment":"QA" }' "https://localhost:9443/governance/endpoints/restservices/cae93ba9-9543-43be-9f30-bb96cec3c443" -i -k
Sample cURL Command 3:
Code Block language java curl -X POST -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "Content-Type: application/json" -H "Cache-Control: no-cache" -d '{
...
"name":"endpoint-2",
...
"type":"endpoint",
...
"version":"1.0.0",
...
"address":"https://localhost:9443",
...
...
"environment":"QA" }' "https://localhost:9443/governance/endpoints/restservices?name=TestRESTService4" -i -k
Response If 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. - Delete an endpoint
Syntax -
Example -
...
Syntax DELETE /governance/endpoints/
...
uuid Example DELETE 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
- Get an endpoint status
Syntax GET /governance/endpoints/<uuid>/states Example GET 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
- Activate an endpoint
Syntax POST /governance/endpoints/activate/<uuid>
...
...
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
- Deactivate an endpoint
Syntax POST /governance/endpoints/deactivate/<uuid>
...
...
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
- Get an endpoint belong to a certain artifact instance
Syntax GET /governance/<asset_short_name_s>/<id>/endpoints Example GET 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