TIBCO Data Virtualization® > Business Directory REST API > Business Directory REST APIs > Categories
 
Categories
The following operations can be performed on the different categories of the BD resources:
GET /categories
POST /categories
DELETE /categories
PATCH /categories
POST /categories/classifications
GET /categories/CategoryName
PATCH /categories/CategoryName
GET /categories/categoryName/values
POST /categories/categoryName/values
DELETE /categories/categoryName/values
GET /categories/{categoryName}/values/{categoryValueName}/resources
POST /categories/{categoryName}/values/{categoryValueName}/resources
PUT /categories/{categoryName}/values/{valueName}
DELETE /categories/{categoryName}/values/{valueName}/resources
DELETE /categories/{categoryName}/values/{valueName}/resources/ {resourceType}/{resourcePath}
DELETE /categories/{categoryName}/values/{value}
GET /categories
This API is used to get all categories.
Parameters
None
Example to get all categories
curl -X GET -u admin:admin "https://localhost:9502/rest/v2/categories"
Example to get all categories as ldap user
curl -X GET -u user@ldapDomain:password "https://localhost:9502/rest/v2/categories"
Example to get all categories count
curl -X GET -u admin:admin "https://localhost:9502/rest/v2/categories?count"
POST /categories
This API is used to create new categories and values. The provided JSON should be a list of CategoryBeans that you'd like to add or update. A CategoryBean consists of a categoryName and List of category values. If the set of values is empty, then the category will be added without any values. If the category already exists, then the given values will be added to the category.
Parameters
None
Request Body
[
{
"categoryName": "string",
"categoryValues": [
"string"
]
}
]
Example to create a new category "category1" with empty values
curl -X POST -u admin:admin "https://localhost:9502/rest/v2/categories" -H "Content-Type:application/json" -d "[{\"categoryName\":\"category1\", \"categoryValues\" : []}]"
Example to create a new category "category1" with empty values as ldap user
curl -X POST -u user@ldapDomain:password "https://localhost:9502/rest/v2/categories" -H "Content-Type:application/json" -d "[{\"categoryName\":\"category1\", \"categoryValues\" : []}]"
Example to create a new category "category2" with values categoryValue1, categoryValue2, categoryValue3
curl -X POST -u admin:admin "https://localhost:9502/rest/v2/categories" -H "Content-Type:application/json" -d "[{\"categoryName\":\"category2\",\"categoryValues\":[\"categoryValue1\",\"categoryValue2\",\"categoryValue3\"]}]"
Example to add values to existing category "category2"
curl -X POST -u admin:admin "https://localhost:9502/rest/v2/categories" -H "Content-Type:application/json" -d "[{\"categoryName\":\"category2\",\"categoryValues\":[\"categoryValue4\",\"categoryValue5\",\"categoryValue6\"]}]"
DELETE /categories
This API is used to delete categories and values. The provided JSON should be a map whose keys are the categories that you'd like to delete. The values of the map are a set of values to delete within the category. If the set of values is empty, then the entire category will be deleted.
Parameters
None
Request Body
[
{
"categoryName": "string",
"categoryValues": [
"string"
]
}
]
Example to delete categories category1 and category2
curl -X DELETE -u admin:admin "https://localhost:9502/rest/v2/categories" -H "Content-Type:application/json" -d "[{\"categoryName\" : \"category1\" }, { \"categoryName\" : \"category2\" }]"
Example to delete values "categoryValue1", "categoryValue2", "categoryValue3" from category category2
curl -X DELETE -u admin:admin "https://localhost:9502/rest/v2/categories" -H "Content-Type:application/json" -d "[{\"categoryName\" : \"category2\", \"categoryValues\" : [\"categoryValue1\",\"categoryValue2\",\"categoryValue3\"]}]"
Example to delete values "categoryValue1", "categoryValue2", "categoryValue3" from category category2 as an ldap user
curl -X DELETE -u user@ldapDomain:password "https://localhost:9502/rest/v2/categories" -H "Content-Type:application/json" -d "[{\"categoryName\" : \"category2\", \"categoryValues\" : [\"categoryValue1\",\"categoryValue2\",\"categoryValue3\"]}]"
PATCH /categories
This API is used to rename categories and values.
Parameters
None
Request Body
[
{
"op": "RENAME_CATEGORY",
"oldCategoryValue": "string",
"oldCategoryName": "string",
"newCategoryOrCategoryValueName": "string"
}
Example to Rename category "originalCategoryName1" to "category1"
curl -X PATCH -u admin:admin "https://localhost:9502/rest/v2/categories" -H "Content-Type:application/json" -d "[{\"op\":\"RENAME_CATEGORY\", \"oldCategoryName\":\"originalCategoryName1\", \"newCategoryOrCategoryValueName\":\"category1\"}]"
POST /categories/classifications
This API is used to classify resources by associating them with categories and values. The classifications you specify in the request body (JSON) for each resource replace any current classifications for that resource, so you can use this method both to add and remove classifications.
Parameters
None.
Request Body
[
{
"resourcePath": "string",
"resourceType": "string",
"classifications": [
{
"categoryName": "string",
"categoryValues": [
"string"
]
}
]
}
]
Example to classify a resource with Multiple categories/values
curl -X POST -u admin:admin "https://localhost:9502/rest/v2/categories/classifications" -H "Content-Type:application/json" -d "[{\"resourcePath\":\"/localhost_9400/services/databases/foo/bar/orders\", \"resourceType\":\"database_table\", \"classifications\":[{\"categoryName\":\"sales\",\"categoryValues\":[\"hrsales\",\"prodsales\"]}]}]"
Example to classify a resource with Multiple categories/values as ldap user
curl -X POST -u user@ldapDomain:password "https://localhost:9502/rest/v2/categories/classifications" -H "Content-Type:application/json" -d "[{\"resourcePath\":\"/localhost_9400/services/databases/foo/bar/orders\", \"resourceType\":\"database_table\", \"classifications\":[{\"categoryName\":\"sales\",\"categoryValues\":[\"hrsales\",\"prodsales\"]}]}]"
Example to remove classifications for a resource
curl -X POST -u admin:admin "https://localhost:9502/rest/v2/categories/classifications" -H "Content-Type:application/json" -d "[{\"resourcePath\":\"/localhost_9400/services/databases/foo/bar/orders\", \"resourceType\":\"database_table\", \"classifications\": null }]"
GET /categories/CategoryName
This API is used to get a category.
Parameters
Name
Description
Parameter Type
Data Type
categoryName
The name of the category to get.
path
string
Example to get category "category2"
curl -X GET -u admin:admin "https://localhost:9502/rest/v2/categories/category2"
Example to get category "category2" as ldap user
curl -X GET -u user@ldapDomain:password "https://localhost:9502/rest/v2/categories/category2"
PATCH /categories/CategoryName
This API is used to rename a single category and/or its values.
Parameters
Name
Description
Parameter Type
Data Type
categoryName
The name of the category to rename.
path
string
Example to rename category "category1" to "oldCategoryName1"
curl -X PATCH -u admin:admin "https://localhost:9502/rest/v2/categories/oldCategoryName1" -H "Content-Type:application/json" -d "[{\"op\":\"RENAME_CATEGORY\", \"newCategoryOrCategoryValueName\":\"category2\"}]"
Example to rename category "category1" to "oldCategoryName1" as ldap user
curl -X PATCH -u user@ldapDomain:password "https://localhost:9502/rest/v2/categories/oldCategoryName1" -H "Content-Type:application/json" -d "[{\"op\":\"RENAME_CATEGORY\", \"newCategoryOrCategoryValueName\":\"category2\"}]"
Example to Rename category value name "category1/value1" to "category1/value2"
curl -X PATCH -u admin:admin "https://localhost:9502/rest/v2/categories/category1" -H "Content-Type:application/json" -d "[{\"op\":\"RENAME_CATEGORY_VALUE\", \"oldCategoryValue\":\"value1\", \"newCategoryOrCategoryValueName\":\"value2\"}]"
Example to Rename category name and value "category1/value1" to "category2/value2"
curl -X PATCH -u admin:admin "https://localhost:9502/rest/v2/categories/category1" -H "Content-Type:application/json" -d "[{\"op\":\"RENAME_CATEGORY\", \"newCategoryOrCategoryValueName\":\"category2\"}, {\"op\":\"RENAME_CATEGORY_VALUE\", \"oldCategoryValue\":\"value1\", \"newCategoryOrCategoryValueName\":\"value2\"}]"
GET /categories/categoryName/values
This API is used to get values for a category.
Parameters
Name
Description
Parameter Type
Data Type
categoryName
The name of the category for which to get values..
path
string
Example to get values for category "category2"
curl -X GET -u admin:admin "https://localhost:9502/rest/v2/categories/category2/values"
Example to get values for category "category2" as ldap user
curl -X GET -u user@ldapDomain:password "https://localhost:9502/rest/v2/categories/category2/values"
Example to get value count for category "category2"
curl -X GET -u admin:admin "https://localhost:9502/rest/v2/categories/category2/values?count"
POST /categories/categoryName/values
This API is used to create new values in a category. The provided JSON should be a list of string values that you'd like to add to the category.
Parameters
Name
Description
Parameter Type
Data Type
categoryName
The name of the category to which to add new values
path
string
Request Body
[
"string"
]
Example to update category "category2" with new values categoryValue1, categoryValue2, categoryValue3
curl -X POST -u admin:admin "https://localhost:9502/rest/v2/categories/category2/values" -H "Content-Type:application/json" -d "[\"categoryValue1\",\"categoryValue2\",\"categoryValue3\"]"
Example to update category "category2" with new values categoryValue1, categoryValue2, categoryValue3 as ldap user
curl -X POST -u user@ldapDomain:password "https://localhost:9502/rest/v2/categories/category2/values" -H "Content-Type:application/json" -d "[\"categoryValue1\",\"categoryValue2\",\"categoryValue3\"]"
DELETE /categories/categoryName/values
This API is used to drop all values from a category.
Parameters
Name
Description
Parameter Type
Data Type
categoryName
The name of the category to which to add new values
path
string
Example to drop all values from category "category2"
curl -X DELETE -u admin:admin "https://localhost:9502/rest/v2/categories/category2/values"
Example to drop all values from category "category2" as ldap user
curl -X DELETE -u user@ldapDomain:password "https://localhost:9502/rest/v2/categories/category2/values"
GET /categories/{categoryName}/values/{categoryValueName}/resources
This API is used to fetch classifications for a particular category value.
Parameters
Name
Description
Parameter Type
Data Type
categoryName
The name of the category
path
string
categoryValueName
The name of the category value
path
string
Example to list classifications for the products/bestseller category/value pair
curl -X GET -u admin:admin "https://localhost:9502/rest/v2/categories/products/values/bestseller/resources"
Example to list classifications for the products/bestseller category/value pair as ldap user
curl -X GET -u user@ldapDomain:password "https://localhost:9502/rest/v2/categories/products/values/bestseller/resources"
Equivalent system query:
curl -X POST -u admin:admin "https://localhost:9502/rest/v2/data/typed" -H "Content-Type:application/json" -d "{\"query\":\"select * from ALL_CLASSIFICATIONS where CATEGORY_VALUE_ID IN (select CATEGORY_VALUE_ID from ALL_CATEGORY_VALUES where CATEGORY_NAME = 'products' and CATEGORY_VALUE_NAME = 'bestseller' )\",\"standardSQL\":true}"
Example to get the count of classifications for the products/bestseller category/value pair
curl -X GET -u admin:admin "https://localhost:9502/rest/v2/categories/products/values/bestseller/resources?count"
POST /categories/{categoryName}/values/{categoryValueName}/resources
This API is used to classify resources by associating them with a category/value pair.
Parameters
Name
Description
Parameter Type
Data Type
categoryName
Category name with which to classify the resource
path
string
categoryValueName
Category value with which to classify the resource
path
string
Request Body
[
{
"resourcePath": "string",
"resourceType": "string"
}
]
Example to Classify a resource with the products/bestseller category/value pair
curl -X POST -u admin:admin "https://localhost:9502/rest/v2/categories/products/values/bestseller/resources" -H "Content-Type:application/json" -d "[{\"resourcePath\":\"/localhost_9400/services/databases/ds/foo\", \"resourceType\":\"database_table\"}]"
Example to Classify a resource with the products/bestseller category/value pair as ldap user
curl -X POST -u user@ldapDomain:password "https://localhost:9502/rest/v2/categories/products/values/bestseller/resources" -H "Content-Type:application/json" -d "[{\"resourcePath\":\"/localhost_9400/services/databases/ds/foo\", \"resourceType\":\"database_table\"}]"
PUT /categories/{categoryName}/values/{valueName}
This API is used to rename a single category value.
Parameters
Name
Description
Parameter Type
Data Type
categoryName
Category under which a value is to be renamed.
path
string
categoryValueName
Category value to rename
path
string
body
The new category value
body
string
Example to rename category value "category1/Value1" to "oldCategoryName1/RenamedValue1"
curl -X PUT -u admin:admin "https://localhost:9502/rest/v2/categories/category1/values/Value1" -H "Content-Type:application/json" -d "RenamedValue1"
Example to rename category value "category1/Value1" to "oldCategoryName1/RenamedValue1" as ldap user
curl -X PUT -u user@ldapDomain:password "https://localhost:9502/rest/v2/categories/category1/values/Value1" -H "Content-Type:application/json" -d "RenamedValue1"
DELETE /categories/{categoryName}/values/{valueName}/resources
This API is used to remove resource classifications.
Parameters
Name
Description
Parameter Type
Data Type
categoryName
The name of the category associated with the classification to remove.
path
string
categoryValueName
The name of the category value associated with the classification to remove
path
string
Example to remove the products/bestseller classification from a resource
curl -X DELETE -u admin:admin "https://localhost:9502/rest/v2/categories/products/values/bestseller/resources" -H "Content-Type:application/json" -d "[{\"resourcePath\":\"/localhost_9400/services/databases/ds/foo\", \"resourceType\":\"database_table\"}]"
Example to remove the products/bestseller classification from a resource as ldap user
curl -X DELETE -u user@ldapDomain:password "https://localhost:9502/rest/v2/categories/products/values/bestseller/resources" -H "Content-Type:application/json" -d "[{\"resourcePath\":\"/localhost_9400/services/databases/ds/foo\", \"resourceType\":\"database_table\"}]"
DELETE /categories/{categoryName}/values/{valueName}/resources/ {resourceType}/{resourcePath}
This API is used to remove a resource classification.
Parameters
Name
Description
Parameter Type
Data Type
categoryName
The name of the category associated with the classification to remove.
path
string
valueName
The name of the value to unclassify
path
string
resourceType
The type of the resource from which the category value is to be unclassified
path
string
resourcePath
The path of the resource from which the category value is to be unclassified. URL Encode any slashes in the path
path
string
Example to remove classifications from a resource
curl -X DELETE -u admin:admin "https://localhost:9502/rest/v2/categories/products/values/bestseller/resources/database_table/%2Flocalhost_9400%2Fservices%2Fdatabases%2Ffoo%2Fbar%2Forders"
Example to remove classifications from a resource as ldap user
curl -X DELETE -u user@ldapDomain:password "https://localhost:9502/rest/v2/categories/products/values/bestseller/resources/database_table/%2Flocalhost_9400%2Fservices%2Fdatabases%2Ffoo%2Fbar%2Forders"
DELETE /categories/{categoryName}/values/{value}
This API is used to drop a value from a category.
Parameters
Name
Description
Parameter Type
Data Type
categoryName
The name of the category from which to delete a value
path
string
value
The name of the value to delete from the category
path
string
Example to drop from category "category2" the value "categoryValue3"
curl -X DELETE -u admin:admin "https://localhost:9502/rest/v2/categories/category2/values/categoryValue3"
Example to drop from category "category2" the value "categoryValue3" as ldap user
curl -X DELETE -u user@ldapDomain:password "https://localhost:9502/rest/v2/categories/category2/values/categoryValue3"