Back to Collection Items
load ./chilkat.dll
# This example assumes the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
set http [new_CkHttp]
# Adds the "Authorization: Bearer <access_token>" header.
CkHttp_put_AuthToken $http "<access_token>"
set sbResponseBody [new_CkStringBuilder]
set success [CkHttp_QuickGetSb $http "https://domain.com/services/data/v{{version}}/tooling/sobjects/:SOBJECT_API_NAME/:RECORD_ID" $sbResponseBody]
if {$success == 0} then {
puts [CkHttp_lastErrorText $http]
delete_CkHttp $http
delete_CkStringBuilder $sbResponseBody
exit
}
set jResp [new_CkJsonObject]
CkJsonObject_LoadSb $jResp $sbResponseBody
CkJsonObject_put_EmitCompact $jResp 0
puts "Response Body:"
puts [CkJsonObject_emit $jResp]
set respStatusCode [CkHttp_get_LastStatus $http]
puts "Response Status Code = $respStatusCode"
if {$respStatusCode >= 400} then {
puts "Response Header:"
puts [CkHttp_lastHeader $http]
puts "Failed."
delete_CkHttp $http
delete_CkStringBuilder $sbResponseBody
delete_CkJsonObject $jResp
exit
}
# Sample JSON response:
# (Sample code for parsing the JSON response is shown below)
# {
# "attributes": {
# "type": "ApexClass",
# "url": "/services/data/v59.0/tooling/sobjects/ApexClass/01p4H00000A4kfqQAB"
# },
# "Id": "01p4H00000A4kfqQAB",
# "NamespacePrefix": "smon",
# "Name": "GenericEventPostMock",
# "ApiVersion": 59,
# "Status": "Active",
# "IsValid": false,
# "BodyCrc": -1,
# "Body": "/*\nThis file is generated and isn't the actual source code for this\nmanaged global class.\nThis read-only file shows the class's global constructors,\nmethods, variables, and properties.\nTo enable code to compile, all methods return null.\n*/\nglobal class GenericEventPostMock implements System.HttpCalloutMock {\n global GenericEventPostMock(Integer statusCode) {\n\n }\n global System.HttpResponse respond(System.HttpRequest req) {\n return null;\n }\n}\n",
# "LengthWithoutComments": -1,
# "CreatedDate": "2023-11-20T08:03:40.000+0000",
# "CreatedById": "00558000000yFyDAAU",
# "LastModifiedDate": "2023-11-20T08:03:40.000+0000",
# "LastModifiedById": "00558000000yFyDAAU",
# "SystemModstamp": "2023-11-26T14:10:11.000+0000",
# "ManageableState": "installed",
# "SymbolTable": {
# "constructors": [
# {
# "annotations": [
# ],
# "location": {
# "column": 12,
# "line": 5
# },
# "modifiers": [
# "global"
# ],
# "name": "GenericEventPostMock",
# "parameters": [
# {
# "name": "statusCode",
# "type": "Integer"
# }
# ],
# "references": [
# ],
# "type": null
# }
# ],
# "externalReferences": [
# ],
# "id": "smon.GenericEventPostMock",
# "innerClasses": [
# ],
# "interfaces": [
# "System.HttpCalloutMock"
# ],
# "key": "smon.GenericEventPostMock",
# "methods": [
# {
# "annotations": [
# ],
# "location": {
# "column": 25,
# "line": 9
# },
# "modifiers": [
# "global"
# ],
# "name": "respond",
# "parameters": [
# {
# "name": "req",
# "type": "System.HttpRequest"
# }
# ],
# "references": [
# ],
# "returnType": "System.HttpResponse",
# "type": null
# }
# ],
# "name": "GenericEventPostMock",
# "namespace": "smon",
# "parentClass": "",
# "properties": [
# ],
# "tableDeclaration": {
# "annotations": [
# {
# "name": "IsTest"
# }
# ],
# "location": {
# "column": 14,
# "line": 2
# },
# "modifiers": [
# "testMethod",
# "global"
# ],
# "name": "GenericEventPostMock",
# "references": [
# ],
# "type": "smon.GenericEventPostMock"
# },
# "variables": [
# ]
# },
# "Metadata": {
# "apiVersion": 59,
# "packageVersions": [
# ],
# "status": "Active",
# "urls": null
# },
# "FullName": "smon__GenericEventPostMock"
# }
# Sample code for parsing the JSON response...
# Use this online tool to generate parsing code from sample JSON: Generate JSON Parsing Code
set v_Type [CkJsonObject_stringOf $jResp "attributes.type"]
set v_Url [CkJsonObject_stringOf $jResp "attributes.url"]
set Id [CkJsonObject_stringOf $jResp "Id"]
set NamespacePrefix [CkJsonObject_stringOf $jResp "NamespacePrefix"]
set Name [CkJsonObject_stringOf $jResp "Name"]
set ApiVersion [CkJsonObject_IntOf $jResp "ApiVersion"]
set Status [CkJsonObject_stringOf $jResp "Status"]
set IsValid [CkJsonObject_BoolOf $jResp "IsValid"]
set BodyCrc [CkJsonObject_IntOf $jResp "BodyCrc"]
set Body [CkJsonObject_stringOf $jResp "Body"]
set LengthWithoutComments [CkJsonObject_IntOf $jResp "LengthWithoutComments"]
set CreatedDate [CkJsonObject_stringOf $jResp "CreatedDate"]
set CreatedById [CkJsonObject_stringOf $jResp "CreatedById"]
set LastModifiedDate [CkJsonObject_stringOf $jResp "LastModifiedDate"]
set LastModifiedById [CkJsonObject_stringOf $jResp "LastModifiedById"]
set SystemModstamp [CkJsonObject_stringOf $jResp "SystemModstamp"]
set ManageableState [CkJsonObject_stringOf $jResp "ManageableState"]
set SymbolTableId [CkJsonObject_stringOf $jResp "SymbolTable.id"]
set Key [CkJsonObject_stringOf $jResp "SymbolTable.key"]
set SymbolTableName [CkJsonObject_stringOf $jResp "SymbolTable.name"]
set Namespace [CkJsonObject_stringOf $jResp "SymbolTable.namespace"]
set ParentClass [CkJsonObject_stringOf $jResp "SymbolTable.parentClass"]
set Column [CkJsonObject_IntOf $jResp "SymbolTable.tableDeclaration.location.column"]
set Line [CkJsonObject_IntOf $jResp "SymbolTable.tableDeclaration.location.line"]
set TableDeclarationName [CkJsonObject_stringOf $jResp "SymbolTable.tableDeclaration.name"]
set TableDeclarationType [CkJsonObject_stringOf $jResp "SymbolTable.tableDeclaration.type"]
set MetadataApiVersion [CkJsonObject_IntOf $jResp "Metadata.apiVersion"]
set MetadataStatus [CkJsonObject_stringOf $jResp "Metadata.status"]
set Urls [CkJsonObject_stringOf $jResp "Metadata.urls"]
set FullName [CkJsonObject_stringOf $jResp "FullName"]
set i 0
set count_i [CkJsonObject_SizeOfArray $jResp "SymbolTable.constructors"]
while {$i < $count_i} {
CkJsonObject_put_I $jResp $i
set locationColumn [CkJsonObject_IntOf $jResp "SymbolTable.constructors[i].location.column"]
set locationLine [CkJsonObject_IntOf $jResp "SymbolTable.constructors[i].location.line"]
set name [CkJsonObject_stringOf $jResp "SymbolTable.constructors[i].name"]
set v_type [CkJsonObject_stringOf $jResp "SymbolTable.constructors[i].type"]
set j 0
set count_j [CkJsonObject_SizeOfArray $jResp "SymbolTable.constructors[i].annotations"]
while {$j < $count_j} {
CkJsonObject_put_J $jResp $j
set j [expr $j + 1]
}
set j 0
set count_j [CkJsonObject_SizeOfArray $jResp "SymbolTable.constructors[i].modifiers"]
while {$j < $count_j} {
CkJsonObject_put_J $jResp $j
set strVal [CkJsonObject_stringOf $jResp "SymbolTable.constructors[i].modifiers[j]"]
set j [expr $j + 1]
}
set j 0
set count_j [CkJsonObject_SizeOfArray $jResp "SymbolTable.constructors[i].parameters"]
while {$j < $count_j} {
CkJsonObject_put_J $jResp $j
set name [CkJsonObject_stringOf $jResp "SymbolTable.constructors[i].parameters[j].name"]
set v_type [CkJsonObject_stringOf $jResp "SymbolTable.constructors[i].parameters[j].type"]
set j [expr $j + 1]
}
set j 0
set count_j [CkJsonObject_SizeOfArray $jResp "SymbolTable.constructors[i].references"]
while {$j < $count_j} {
CkJsonObject_put_J $jResp $j
set j [expr $j + 1]
}
set i [expr $i + 1]
}
set i 0
set count_i [CkJsonObject_SizeOfArray $jResp "SymbolTable.externalReferences"]
while {$i < $count_i} {
CkJsonObject_put_I $jResp $i
set i [expr $i + 1]
}
set i 0
set count_i [CkJsonObject_SizeOfArray $jResp "SymbolTable.innerClasses"]
while {$i < $count_i} {
CkJsonObject_put_I $jResp $i
set i [expr $i + 1]
}
set i 0
set count_i [CkJsonObject_SizeOfArray $jResp "SymbolTable.interfaces"]
while {$i < $count_i} {
CkJsonObject_put_I $jResp $i
set strVal [CkJsonObject_stringOf $jResp "SymbolTable.interfaces[i]"]
set i [expr $i + 1]
}
set i 0
set count_i [CkJsonObject_SizeOfArray $jResp "SymbolTable.methods"]
while {$i < $count_i} {
CkJsonObject_put_I $jResp $i
set locationColumn [CkJsonObject_IntOf $jResp "SymbolTable.methods[i].location.column"]
set locationLine [CkJsonObject_IntOf $jResp "SymbolTable.methods[i].location.line"]
set name [CkJsonObject_stringOf $jResp "SymbolTable.methods[i].name"]
set returnType [CkJsonObject_stringOf $jResp "SymbolTable.methods[i].returnType"]
set v_type [CkJsonObject_stringOf $jResp "SymbolTable.methods[i].type"]
set j 0
set count_j [CkJsonObject_SizeOfArray $jResp "SymbolTable.methods[i].annotations"]
while {$j < $count_j} {
CkJsonObject_put_J $jResp $j
set j [expr $j + 1]
}
set j 0
set count_j [CkJsonObject_SizeOfArray $jResp "SymbolTable.methods[i].modifiers"]
while {$j < $count_j} {
CkJsonObject_put_J $jResp $j
set strVal [CkJsonObject_stringOf $jResp "SymbolTable.methods[i].modifiers[j]"]
set j [expr $j + 1]
}
set j 0
set count_j [CkJsonObject_SizeOfArray $jResp "SymbolTable.methods[i].parameters"]
while {$j < $count_j} {
CkJsonObject_put_J $jResp $j
set name [CkJsonObject_stringOf $jResp "SymbolTable.methods[i].parameters[j].name"]
set v_type [CkJsonObject_stringOf $jResp "SymbolTable.methods[i].parameters[j].type"]
set j [expr $j + 1]
}
set j 0
set count_j [CkJsonObject_SizeOfArray $jResp "SymbolTable.methods[i].references"]
while {$j < $count_j} {
CkJsonObject_put_J $jResp $j
set j [expr $j + 1]
}
set i [expr $i + 1]
}
set i 0
set count_i [CkJsonObject_SizeOfArray $jResp "SymbolTable.properties"]
while {$i < $count_i} {
CkJsonObject_put_I $jResp $i
set i [expr $i + 1]
}
set i 0
set count_i [CkJsonObject_SizeOfArray $jResp "SymbolTable.tableDeclaration.annotations"]
while {$i < $count_i} {
CkJsonObject_put_I $jResp $i
set name [CkJsonObject_stringOf $jResp "SymbolTable.tableDeclaration.annotations[i].name"]
set i [expr $i + 1]
}
set i 0
set count_i [CkJsonObject_SizeOfArray $jResp "SymbolTable.tableDeclaration.modifiers"]
while {$i < $count_i} {
CkJsonObject_put_I $jResp $i
set strVal [CkJsonObject_stringOf $jResp "SymbolTable.tableDeclaration.modifiers[i]"]
set i [expr $i + 1]
}
set i 0
set count_i [CkJsonObject_SizeOfArray $jResp "SymbolTable.tableDeclaration.references"]
while {$i < $count_i} {
CkJsonObject_put_I $jResp $i
set i [expr $i + 1]
}
set i 0
set count_i [CkJsonObject_SizeOfArray $jResp "SymbolTable.variables"]
while {$i < $count_i} {
CkJsonObject_put_I $jResp $i
set i [expr $i + 1]
}
set i 0
set count_i [CkJsonObject_SizeOfArray $jResp "Metadata.packageVersions"]
while {$i < $count_i} {
CkJsonObject_put_I $jResp $i
set i [expr $i + 1]
}
delete_CkHttp $http
delete_CkStringBuilder $sbResponseBody
delete_CkJsonObject $jResp
Curl Command
curl -X GET
-H "Authorization: Bearer <access_token>"
https://domain.com/services/data/v{{version}}/tooling/sobjects/:SOBJECT_API_NAME/:RECORD_ID
Postman Collection Item JSON
{
"name": "Access Records",
"request": {
"method": "GET",
"header": [
],
"url": {
"raw": "{{_endpoint}}/services/data/v{{version}}/tooling/sobjects/:SOBJECT_API_NAME/:RECORD_ID",
"host": [
"{{_endpoint}}"
],
"path": [
"services",
"data",
"v{{version}}",
"tooling",
"sobjects",
":SOBJECT_API_NAME",
":RECORD_ID"
],
"variable": [
{
"key": "SOBJECT_API_NAME",
"value": ""
},
{
"key": "RECORD_ID",
"value": ""
}
]
}
},
"response": [
{
"name": "Access Records",
"originalRequest": {
"method": "GET",
"header": [
],
"url": {
"raw": "{{_endpoint}}/services/data/v{{version}}/tooling/sobjects/:SOBJECT_API_NAME/:RECORD_ID",
"host": [
"{{_endpoint}}"
],
"path": [
"services",
"data",
"v{{version}}",
"tooling",
"sobjects",
":SOBJECT_API_NAME",
":RECORD_ID"
],
"variable": [
{
"key": "SOBJECT_API_NAME",
"value": "ApexClass"
},
{
"key": "RECORD_ID",
"value": "01p4H00000A4kfqQAB"
}
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Date",
"value": "Mon, 11 Dec 2023 10:38:26 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=308/15000"
},
{
"key": "Last-Modified",
"value": "Sun, 26 Nov 2023 14:10:11 GMT"
},
{
"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 \"attributes\": {\n \"type\": \"ApexClass\",\n \"url\": \"/services/data/v59.0/tooling/sobjects/ApexClass/01p4H00000A4kfqQAB\"\n },\n \"Id\": \"01p4H00000A4kfqQAB\",\n \"NamespacePrefix\": \"smon\",\n \"Name\": \"GenericEventPostMock\",\n \"ApiVersion\": 59,\n \"Status\": \"Active\",\n \"IsValid\": false,\n \"BodyCrc\": -1,\n \"Body\": \"/*\\nThis file is generated and isn't the actual source code for this\\nmanaged global class.\\nThis read-only file shows the class's global constructors,\\nmethods, variables, and properties.\\nTo enable code to compile, all methods return null.\\n*/\\nglobal class GenericEventPostMock implements System.HttpCalloutMock {\\n global GenericEventPostMock(Integer statusCode) {\\n\\n }\\n global System.HttpResponse respond(System.HttpRequest req) {\\n return null;\\n }\\n}\\n\",\n \"LengthWithoutComments\": -1,\n \"CreatedDate\": \"2023-11-20T08:03:40.000+0000\",\n \"CreatedById\": \"00558000000yFyDAAU\",\n \"LastModifiedDate\": \"2023-11-20T08:03:40.000+0000\",\n \"LastModifiedById\": \"00558000000yFyDAAU\",\n \"SystemModstamp\": \"2023-11-26T14:10:11.000+0000\",\n \"ManageableState\": \"installed\",\n \"SymbolTable\": {\n \"constructors\": [\n {\n \"annotations\": [],\n \"location\": {\n \"column\": 12,\n \"line\": 5\n },\n \"modifiers\": [\n \"global\"\n ],\n \"name\": \"GenericEventPostMock\",\n \"parameters\": [\n {\n \"name\": \"statusCode\",\n \"type\": \"Integer\"\n }\n ],\n \"references\": [],\n \"type\": null\n }\n ],\n \"externalReferences\": [],\n \"id\": \"smon.GenericEventPostMock\",\n \"innerClasses\": [],\n \"interfaces\": [\n \"System.HttpCalloutMock\"\n ],\n \"key\": \"smon.GenericEventPostMock\",\n \"methods\": [\n {\n \"annotations\": [],\n \"location\": {\n \"column\": 25,\n \"line\": 9\n },\n \"modifiers\": [\n \"global\"\n ],\n \"name\": \"respond\",\n \"parameters\": [\n {\n \"name\": \"req\",\n \"type\": \"System.HttpRequest\"\n }\n ],\n \"references\": [],\n \"returnType\": \"System.HttpResponse\",\n \"type\": null\n }\n ],\n \"name\": \"GenericEventPostMock\",\n \"namespace\": \"smon\",\n \"parentClass\": \"\",\n \"properties\": [],\n \"tableDeclaration\": {\n \"annotations\": [\n {\n \"name\": \"IsTest\"\n }\n ],\n \"location\": {\n \"column\": 14,\n \"line\": 2\n },\n \"modifiers\": [\n \"testMethod\",\n \"global\"\n ],\n \"name\": \"GenericEventPostMock\",\n \"references\": [],\n \"type\": \"smon.GenericEventPostMock\"\n },\n \"variables\": []\n },\n \"Metadata\": {\n \"apiVersion\": 59,\n \"packageVersions\": [],\n \"status\": \"Active\",\n \"urls\": null\n },\n \"FullName\": \"smon__GenericEventPostMock\"\n}"
}
]
}