Chilkat Online Tools

DataFlex / Salesforce Platform APIs / Get Tooling Metadata SObject

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}"
    }
  ]
}