...
...
...
Info |
---|
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. |
The Governance REST API basically facilitates the capability to perform the CRUD operations via the well-defined HTTP protocol. The REST API uses the GET, POST, PUT, and DELETE operations of the well-defined HTTP protocol to do the CRUD operation via any REST Client. Google Chrome's Advanced REST client
...
Authorization: Basic YWRtaW46YWRtaW4=
where the format is Authorization: Basic {base64encoded(username:password)}
You must send valid HTTP BasicAuth credentials when invoking the REST API as shown below.
See the sections below for information on sample requests and complete URI formats used when invoking the REST APIs after generating the access token:
Table of Contents maxLevel 3 minLevel 3
Assets
borderColor | #FFFFFF |
---|---|
bgColor | #FFFFFF |
vertical | true |
---|
base64encoded(username:password)}
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. |
Security Requirements
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:
Table of Contents | ||
---|---|---|
|
Assets
Get 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 GET /governance/<asset_short_name_s>
GET /governance/<asset_short_name_s>
Warning |
---|
WSO2 G-Reg does not support date range searches in Governance REST API. |
xyz
?query
Supported Query Format xyz
- Looks for artifacts with
xyz
'.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 isdocLinks
, the field isdocumentType
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.
- 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
xyz&version=1.3.5
- Looks for artifacts with
xyz
' and name xyz with version 1.3.5
tags=
abc
- Searches artifacts with tag 'abc'
lcState=development&lcName=ServiceLifeCycle
- Searches artifacts with an associated life cycle name ServiceLifeCycle with state 'development'
country=usa
- Looks 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+xml
- - searches only soap services with version 1.3.
- 5
Warning WSO2 G-Reg does not support date range searches in Governance REST API.
Example
GET https://localhost:9443//governance/restservices
GET https://localhost:9443//governance/restservices?name=restservice1
GET https://localhost:9443//governance/ restservices?name=restservice1&version=1.0.0
GET https://localhost:9443/governance/restservices?docLinks%3AdocumentComment=rest1%20is%20a%20simple%20API
Sample cURL Command
curl -X GET -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "Cache-Control: no-cache" "https://localhost:9443/governance/restservices"
-i -k
-
i
curl -X GET -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "Cache-Control: no
id | tab3 |
---|---|
title | Get an individual asset of a certain type |
GET /governance/<asset_short_name_s>/UUID
-cache" "https://localhost:9443/
governance/restservices
?name=WarrantyClaimService" -i -k
curl -X GET -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "Cache-Control: no-cache" "https://localhost:9443/governance/restservices
id | tab4 |
---|---|
title | Create a new asset |
?name=WarrantyClaimService&version=1.0.0" -i -k
- Get an individual asset of certain type
Syntax GET /governance/<asset_short_name_s>
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
} |
language | java |
---|
/UUID
Example GET https://localhost:9443 /governance/restservices/3245se24553
Sample cURL Command curl -X GET -H "Cache-Control: no-cache" "https://localhost:9443
Code Block | ||
---|---|---|
| ||
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 |
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
id | tab5 |
---|---|
title | Update an existing asset |
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
} |
Code Block | ||
---|---|---|
| ||
PUT https://localhost:9443 /governance/restservices/324dsdwa535
{
name: "TestRESTService",
type: "restservice",
context: "/test-new",
version: "1.0.0",
} |
language | java |
---|
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/
id | tab6 |
---|---|
title | Delete an asset |
DELETE /governance/<asset_short_name_s>/UUID
DELETE https://localhost:9443/ /governance/restservices/3245se24553
GET /governance/<RXT_short_name_s>/uuid/states
GET /governance/<RXT_short_name_s>/uuid/states?lc=LCName
GET https://localhost:9443//governance/restservices/44dadw4/states
GET https://localhost:9443//governance/restservices/44dadw4/states?lc=ServiceLifeCycle
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
id | tab7 |
---|---|
title | Get lifecycle state of an asset |
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/
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
Payload format is as follows:
Code Block | ||
---|---|---|
| ||
{lc: "Lifecycle name",
action: "Promote",
check_item_N : "value_N",
} |
language | java |
---|
?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
Code Block | ||
---|---|---|
| ||
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
borderColor | #FFFFFF |
---|---|
bgColor | #FFFFFF |
vertical | true |
---|
id | tab9 |
---|---|
title | Get all endpoints |
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>
- GET
<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" }
{
name:
"endpoint-2",
type:
"endpoint",
version:
"1.0.0",
address:
environment:
"QA"
}
Example 3:
{
name:
"endpoint-3",
type:
"endpoint",
version:
"1.0.0",
address:
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>
Example POST 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
Deactivate an endpoint
Syntax POST /governance/endpoints/deactivate/<uuid>
Example POST 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
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