Back to Collection Items
Use ChilkatAx-win32.pkg
Procedure Test
Handle hoHttp
Boolean iSuccess
Variant vSbResponseBody
Handle hoSbResponseBody
Handle hoJResp
Integer iRespStatusCode
Boolean iActivateable
String sAssociateEntityType
String sAssociateParentEntity
Boolean iCreateable
Boolean iCustom
Boolean iCustomSetting
Boolean iDeepCloneable
Boolean iDeletable
Boolean iDeprecatedAndHidden
Boolean iFeedEnabled
Boolean iHasSubtypes
Boolean iIsInterface
Boolean iIsSubtype
String sKeyPrefix
String sLabel
String sLabelPlural
Boolean iLayoutable
Boolean iMergeable
Boolean iMruEnabled
String sName
Boolean iQueryable
Boolean iReplicateable
Boolean iRetrieveable
Boolean iSearchable
Boolean iTriggerable
Boolean iUndeletable
Boolean iUpdateable
String sCompactLayouts
String sRowTemplate
String sDescribe
String sLayouts
String sSobject
Integer i
Integer iCount_i
String sTemp1
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
Get Create (RefClass(cComChilkatHttp)) To hoHttp
If (Not(IsComObjectCreated(hoHttp))) Begin
Send CreateComObject of hoHttp
End
// Adds the "Authorization: Bearer <access_token>" header.
Set ComAuthToken Of hoHttp To "<access_token>"
Get Create (RefClass(cComChilkatStringBuilder)) To hoSbResponseBody
If (Not(IsComObjectCreated(hoSbResponseBody))) Begin
Send CreateComObject of hoSbResponseBody
End
Get pvComObject of hoSbResponseBody to vSbResponseBody
Get ComQuickGetSb Of hoHttp "https://domain.com/services/data/v{{version}}/tooling/sobjects/:SOBJECT_API_NAME" vSbResponseBody To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoHttp To sTemp1
Showln sTemp1
Procedure_Return
End
Get Create (RefClass(cComChilkatJsonObject)) To hoJResp
If (Not(IsComObjectCreated(hoJResp))) Begin
Send CreateComObject of hoJResp
End
Get pvComObject of hoSbResponseBody to vSbResponseBody
Get ComLoadSb Of hoJResp vSbResponseBody To iSuccess
Set ComEmitCompact Of hoJResp To False
Showln "Response Body:"
Get ComEmit Of hoJResp To sTemp1
Showln sTemp1
Get ComLastStatus Of hoHttp To iRespStatusCode
Showln "Response Status Code = " iRespStatusCode
If (iRespStatusCode >= 400) Begin
Showln "Response Header:"
Get ComLastHeader Of hoHttp To sTemp1
Showln sTemp1
Showln "Failed."
Procedure_Return
End
// Sample JSON response:
// (Sample code for parsing the JSON response is shown below)
// {
// "objectDescribe": {
// "activateable": false,
// "associateEntityType": null,
// "associateParentEntity": null,
// "createable": true,
// "custom": false,
// "customSetting": false,
// "deepCloneable": false,
// "deletable": true,
// "deprecatedAndHidden": false,
// "feedEnabled": false,
// "hasSubtypes": false,
// "isInterface": false,
// "isSubtype": false,
// "keyPrefix": "01p",
// "label": "Apex Class",
// "labelPlural": "Apex Classes",
// "layoutable": true,
// "mergeable": false,
// "mruEnabled": true,
// "name": "ApexClass",
// "queryable": true,
// "replicateable": true,
// "retrieveable": true,
// "searchable": true,
// "triggerable": false,
// "undeletable": false,
// "updateable": true,
// "urls": {
// "compactLayouts": "/services/data/v59.0/tooling/sobjects/ApexClass/describe/compactLayouts",
// "rowTemplate": "/services/data/v59.0/tooling/sobjects/ApexClass/{ID}",
// "describe": "/services/data/v59.0/tooling/sobjects/ApexClass/describe",
// "layouts": "/services/data/v59.0/tooling/sobjects/ApexClass/describe/layouts",
// "sobject": "/services/data/v59.0/tooling/sobjects/ApexClass"
// }
// },
// "recentItems": [
// ]
// }
// Sample code for parsing the JSON response...
// Use this online tool to generate parsing code from sample JSON: Generate JSON Parsing Code
Get ComBoolOf Of hoJResp "objectDescribe.activateable" To iActivateable
Get ComStringOf Of hoJResp "objectDescribe.associateEntityType" To sAssociateEntityType
Get ComStringOf Of hoJResp "objectDescribe.associateParentEntity" To sAssociateParentEntity
Get ComBoolOf Of hoJResp "objectDescribe.createable" To iCreateable
Get ComBoolOf Of hoJResp "objectDescribe.custom" To iCustom
Get ComBoolOf Of hoJResp "objectDescribe.customSetting" To iCustomSetting
Get ComBoolOf Of hoJResp "objectDescribe.deepCloneable" To iDeepCloneable
Get ComBoolOf Of hoJResp "objectDescribe.deletable" To iDeletable
Get ComBoolOf Of hoJResp "objectDescribe.deprecatedAndHidden" To iDeprecatedAndHidden
Get ComBoolOf Of hoJResp "objectDescribe.feedEnabled" To iFeedEnabled
Get ComBoolOf Of hoJResp "objectDescribe.hasSubtypes" To iHasSubtypes
Get ComBoolOf Of hoJResp "objectDescribe.isInterface" To iIsInterface
Get ComBoolOf Of hoJResp "objectDescribe.isSubtype" To iIsSubtype
Get ComStringOf Of hoJResp "objectDescribe.keyPrefix" To sKeyPrefix
Get ComStringOf Of hoJResp "objectDescribe.label" To sLabel
Get ComStringOf Of hoJResp "objectDescribe.labelPlural" To sLabelPlural
Get ComBoolOf Of hoJResp "objectDescribe.layoutable" To iLayoutable
Get ComBoolOf Of hoJResp "objectDescribe.mergeable" To iMergeable
Get ComBoolOf Of hoJResp "objectDescribe.mruEnabled" To iMruEnabled
Get ComStringOf Of hoJResp "objectDescribe.name" To sName
Get ComBoolOf Of hoJResp "objectDescribe.queryable" To iQueryable
Get ComBoolOf Of hoJResp "objectDescribe.replicateable" To iReplicateable
Get ComBoolOf Of hoJResp "objectDescribe.retrieveable" To iRetrieveable
Get ComBoolOf Of hoJResp "objectDescribe.searchable" To iSearchable
Get ComBoolOf Of hoJResp "objectDescribe.triggerable" To iTriggerable
Get ComBoolOf Of hoJResp "objectDescribe.undeletable" To iUndeletable
Get ComBoolOf Of hoJResp "objectDescribe.updateable" To iUpdateable
Get ComStringOf Of hoJResp "objectDescribe.urls.compactLayouts" To sCompactLayouts
Get ComStringOf Of hoJResp "objectDescribe.urls.rowTemplate" To sRowTemplate
Get ComStringOf Of hoJResp "objectDescribe.urls.describe" To sDescribe
Get ComStringOf Of hoJResp "objectDescribe.urls.layouts" To sLayouts
Get ComStringOf Of hoJResp "objectDescribe.urls.sobject" To sSobject
Move 0 To i
Get ComSizeOfArray Of hoJResp "recentItems" To iCount_i
While (i < iCount_i)
Set ComI Of hoJResp To i
Move (i + 1) To i
Loop
End_Procedure
Curl Command
curl -X GET
-H "Authorization: Bearer <access_token>"
https://domain.com/services/data/v{{version}}/tooling/sobjects/:SOBJECT_API_NAME
Postman Collection Item JSON
{
"name": "Get Tooling Metadata SObject",
"request": {
"method": "GET",
"header": [
],
"url": {
"raw": "{{_endpoint}}/services/data/v{{version}}/tooling/sobjects/:SOBJECT_API_NAME",
"host": [
"{{_endpoint}}"
],
"path": [
"services",
"data",
"v{{version}}",
"tooling",
"sobjects",
":SOBJECT_API_NAME"
],
"variable": [
{
"key": "SOBJECT_API_NAME",
"value": ""
}
]
}
},
"response": [
{
"name": "Get Tooling Metadata SObject",
"originalRequest": {
"method": "GET",
"header": [
],
"url": {
"raw": "{{_endpoint}}/services/data/v{{version}}/tooling/sobjects/:SOBJECT_API_NAME",
"host": [
"{{_endpoint}}"
],
"path": [
"services",
"data",
"v{{version}}",
"tooling",
"sobjects",
":SOBJECT_API_NAME"
],
"variable": [
{
"key": "SOBJECT_API_NAME",
"value": "ApexClass"
}
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Date",
"value": "Mon, 11 Dec 2023 10:36:20 GMT"
},
{
"key": "Strict-Transport-Security",
"value": "max-age=63072000; includeSubDomains"
},
{
"key": "X-Content-Type-Options",
"value": "nosniff"
},
{
"key": "X-Robots-Tag",
"value": "none"
},
{
"key": "Cache-Control",
"value": "no-cache,must-revalidate,max-age=0,no-store,private"
},
{
"key": "Sforce-Limit-Info",
"value": "api-usage=298/15000"
},
{
"key": "Content-Type",
"value": "application/json;charset=UTF-8"
},
{
"key": "Vary",
"value": "Accept-Encoding"
},
{
"key": "Content-Encoding",
"value": "gzip"
},
{
"key": "Transfer-Encoding",
"value": "chunked"
}
],
"cookie": [
],
"body": "{\n \"objectDescribe\": {\n \"activateable\": false,\n \"associateEntityType\": null,\n \"associateParentEntity\": null,\n \"createable\": true,\n \"custom\": false,\n \"customSetting\": false,\n \"deepCloneable\": false,\n \"deletable\": true,\n \"deprecatedAndHidden\": false,\n \"feedEnabled\": false,\n \"hasSubtypes\": false,\n \"isInterface\": false,\n \"isSubtype\": false,\n \"keyPrefix\": \"01p\",\n \"label\": \"Apex Class\",\n \"labelPlural\": \"Apex Classes\",\n \"layoutable\": true,\n \"mergeable\": false,\n \"mruEnabled\": true,\n \"name\": \"ApexClass\",\n \"queryable\": true,\n \"replicateable\": true,\n \"retrieveable\": true,\n \"searchable\": true,\n \"triggerable\": false,\n \"undeletable\": false,\n \"updateable\": true,\n \"urls\": {\n \"compactLayouts\": \"/services/data/v59.0/tooling/sobjects/ApexClass/describe/compactLayouts\",\n \"rowTemplate\": \"/services/data/v59.0/tooling/sobjects/ApexClass/{ID}\",\n \"describe\": \"/services/data/v59.0/tooling/sobjects/ApexClass/describe\",\n \"layouts\": \"/services/data/v59.0/tooling/sobjects/ApexClass/describe/layouts\",\n \"sobject\": \"/services/data/v59.0/tooling/sobjects/ApexClass\"\n }\n },\n \"recentItems\": []\n}"
}
]
}