Chilkat Online Tools

Foxpro / Salesforce Platform APIs / Get All Navigation Items

Back to Collection Items

LOCAL loHttp
LOCAL lnSuccess
LOCAL loSbResponseBody
LOCAL loJResp
LOCAL lnRespStatusCode
LOCAL lnAvailableInClassic
LOCAL lnAvailableInLightning
LOCAL lcColor
LOCAL lcContent
LOCAL lnCustom
LOCAL lcDeveloperName
LOCAL lcIconUrl
LOCAL lcId
LOCAL lcItemType
LOCAL lcLabel
LOCAL lcObjectApiName
LOCAL lcObjectLabel
LOCAL lcObjectLabelPlural
LOCAL lcObjectApiName
LOCAL lcActionName
LOCAL lcV_Type
LOCAL lcStandardType
LOCAL lcCurrentPageUrl
LOCAL lcETag
LOCAL lcNextPageUrl
LOCAL i
LOCAL lnCount_i

* This example assumes the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.

* For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Http')
loHttp = CreateObject('Chilkat.Http')

* Adds the "Authorization: Bearer <access_token>" header.
loHttp.AuthToken = "<access_token>"

* For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.StringBuilder')
loSbResponseBody = CreateObject('Chilkat.StringBuilder')
lnSuccess = loHttp.QuickGetSb("https://domain.com/services/data/v{{version}}/ui-api/nav-items",loSbResponseBody)
IF (lnSuccess = 0) THEN
    ? loHttp.LastErrorText
    RELEASE loHttp
    RELEASE loSbResponseBody
    CANCEL
ENDIF

* For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.JsonObject')
loJResp = CreateObject('Chilkat.JsonObject')
loJResp.LoadSb(loSbResponseBody)
loJResp.EmitCompact = 0

? "Response Body:"
? loJResp.Emit()

lnRespStatusCode = loHttp.LastStatus
? "Response Status Code = " + STR(lnRespStatusCode)
IF (lnRespStatusCode >= 400) THEN
    ? "Response Header:"
    ? loHttp.LastHeader
    ? "Failed."
    RELEASE loHttp
    RELEASE loSbResponseBody
    RELEASE loJResp
    CANCEL
ENDIF

* Sample JSON response:
* (Sample code for parsing the JSON response is shown below)

* {
*   "currentPageUrl": "/services/data/v58.0/ui-api/nav-items?formFactor=Small&page=1&pageSize=5",
*   "eTag": "425dfe9232c5bd0e9c6e4b94771c91b8",
*   "navItems": [
*     {
*       "availableInClassic": true,
*       "availableInLightning": true,
*       "color": null,
*       "content": "https://pozil-dev-ed.my.salesforce.com/4nK/o",
*       "custom": false,
*       "developerName": "standard-AssetStatePeriod",
*       "iconUrl": null,
*       "id": null,
*       "itemType": "Entity",
*       "label": "Asset State Periods",
*       "objectApiName": "AssetStatePeriod",
*       "objectLabel": "Asset State Period",
*       "objectLabelPlural": "Asset State Periods",
*       "pageReference": {
*         "attributes": {
*           "objectApiName": "AssetStatePeriod",
*           "actionName": "home"
*         },
*         "state": {},
*         "type": "standard__objectPage"
*       },
*       "standardType": null
*     },
*     {
*       "availableInClassic": true,
*       "availableInLightning": true,
*       "color": null,
*       "content": "https://pozil-dev-ed.my.salesforce.com/02i/o",
*       "custom": false,
*       "developerName": "standard-Asset",
*       "iconUrl": null,
*       "id": null,
*       "itemType": "Entity",
*       "label": "Assets",
*       "objectApiName": "Asset",
*       "objectLabel": "Asset",
*       "objectLabelPlural": "Assets",
*       "pageReference": {
*         "attributes": {
*           "objectApiName": "Asset",
*           "actionName": "home"
*         },
*         "state": {},
*         "type": "standard__objectPage"
*       },
*       "standardType": null
*     },
*     {
*       "availableInClassic": true,
*       "availableInLightning": true,
*       "color": null,
*       "content": "https://pozil-dev-ed.my.salesforce.com/0cI/o",
*       "custom": false,
*       "developerName": "standard-AuthorizationForm",
*       "iconUrl": null,
*       "id": null,
*       "itemType": "Entity",
*       "label": "Authorization Form",
*       "objectApiName": "AuthorizationForm",
*       "objectLabel": "Authorization Form",
*       "objectLabelPlural": "Authorization Forms",
*       "pageReference": {
*         "attributes": {
*           "objectApiName": "AuthorizationForm",
*           "actionName": "home"
*         },
*         "state": {},
*         "type": "standard__objectPage"
*       },
*       "standardType": null
*     },
*     {
*       "availableInClassic": true,
*       "availableInLightning": true,
*       "color": null,
*       "content": "https://pozil-dev-ed.my.salesforce.com/0cK/o",
*       "custom": false,
*       "developerName": "standard-AuthorizationFormConsent",
*       "iconUrl": null,
*       "id": null,
*       "itemType": "Entity",
*       "label": "Authorization Form Consent",
*       "objectApiName": "AuthorizationFormConsent",
*       "objectLabel": "Authorization Form Consent",
*       "objectLabelPlural": "Authorization Form Consents",
*       "pageReference": {
*         "attributes": {
*           "objectApiName": "AuthorizationFormConsent",
*           "actionName": "home"
*         },
*         "state": {},
*         "type": "standard__objectPage"
*       },
*       "standardType": null
*     },
*     {
*       "availableInClassic": true,
*       "availableInLightning": true,
*       "color": null,
*       "content": "https://pozil-dev-ed.my.salesforce.com/0cM/o",
*       "custom": false,
*       "developerName": "standard-AuthorizationFormDataUse",
*       "iconUrl": null,
*       "id": null,
*       "itemType": "Entity",
*       "label": "Authorization Form Data Use",
*       "objectApiName": "AuthorizationFormDataUse",
*       "objectLabel": "Authorization Form Data Use",
*       "objectLabelPlural": "Authorization Form Data Uses",
*       "pageReference": {
*         "attributes": {
*           "objectApiName": "AuthorizationFormDataUse",
*           "actionName": "home"
*         },
*         "state": {},
*         "type": "standard__objectPage"
*       },
*       "standardType": null
*     }
*   ],
*   "nextPageUrl": "/services/data/v58.0/ui-api/nav-items?formFactor=Small&page=2&pageSize=5"
* }

* Sample code for parsing the JSON response...
* Use this online tool to generate parsing code from sample JSON: Generate JSON Parsing Code

lcCurrentPageUrl = loJResp.StringOf("currentPageUrl")
lcETag = loJResp.StringOf("eTag")
lcNextPageUrl = loJResp.StringOf("nextPageUrl")
i = 0
lnCount_i = loJResp.SizeOfArray("navItems")
DO WHILE i < lnCount_i
    loJResp.I = i
    lnAvailableInClassic = loJResp.BoolOf("navItems[i].availableInClassic")
    lnAvailableInLightning = loJResp.BoolOf("navItems[i].availableInLightning")
    lcColor = loJResp.StringOf("navItems[i].color")
    lcContent = loJResp.StringOf("navItems[i].content")
    lnCustom = loJResp.BoolOf("navItems[i].custom")
    lcDeveloperName = loJResp.StringOf("navItems[i].developerName")
    lcIconUrl = loJResp.StringOf("navItems[i].iconUrl")
    lcId = loJResp.StringOf("navItems[i].id")
    lcItemType = loJResp.StringOf("navItems[i].itemType")
    lcLabel = loJResp.StringOf("navItems[i].label")
    lcObjectApiName = loJResp.StringOf("navItems[i].objectApiName")
    lcObjectLabel = loJResp.StringOf("navItems[i].objectLabel")
    lcObjectLabelPlural = loJResp.StringOf("navItems[i].objectLabelPlural")
    lcObjectApiName = loJResp.StringOf("navItems[i].pageReference.attributes.objectApiName")
    lcActionName = loJResp.StringOf("navItems[i].pageReference.attributes.actionName")
    lcV_Type = loJResp.StringOf("navItems[i].pageReference.type")
    lcStandardType = loJResp.StringOf("navItems[i].standardType")
    i = i + 1
ENDDO

RELEASE loHttp
RELEASE loSbResponseBody
RELEASE loJResp

Curl Command

curl -X GET
	-H "Authorization: Bearer <access_token>"
https://domain.com/services/data/v{{version}}/ui-api/nav-items

Postman Collection Item JSON

{
  "name": "Get All Navigation Items",
  "event": [
    {
      "listen": "prerequest",
      "script": {
        "exec": [
          ""
        ],
        "type": "text/javascript"
      }
    }
  ],
  "protocolProfileBehavior": {
    "disableBodyPruning": true
  },
  "request": {
    "method": "GET",
    "header": [
    ],
    "body": {
      "mode": "raw",
      "raw": "",
      "options": {
        "raw": {
          "language": "json"
        }
      }
    },
    "url": {
      "raw": "{{_endpoint}}/services/data/v{{version}}/ui-api/nav-items",
      "host": [
        "{{_endpoint}}"
      ],
      "path": [
        "services",
        "data",
        "v{{version}}",
        "ui-api",
        "nav-items"
      ],
      "query": [
        {
          "key": "formFactor",
          "value": "Small",
          "description": "The form factor for each app that the user has access to (`Large`, `Medium` or `Small`)",
          "disabled": true
        },
        {
          "key": "navItemNames",
          "value": "",
          "description": "A comma delimited list of TabDefinition name values to include in the response.",
          "disabled": true
        },
        {
          "key": "page",
          "value": "",
          "description": "The page offset form which to begin returning nav items. The default value is 0, which returns nav items from the first page. For example, for `page=2` and `pageSize=10`, the first nav item returned is the 21st nav item in the list.",
          "disabled": true
        },
        {
          "key": "pageSize",
          "value": "",
          "description": "The maximum number of nav items to return on a page. The default value is 25.",
          "disabled": true
        }
      ]
    },
    "description": "Gets all navigation items (tabs) that the user has access to."
  },
  "response": [
    {
      "name": "Get All Navigation Items",
      "originalRequest": {
        "method": "GET",
        "header": [
        ],
        "body": {
          "mode": "raw",
          "raw": "",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "url": {
          "raw": "{{_endpoint}}/services/data/v{{version}}/ui-api/nav-items?formFactor=Small&page=1&pageSize=5",
          "host": [
            "{{_endpoint}}"
          ],
          "path": [
            "services",
            "data",
            "v{{version}}",
            "ui-api",
            "nav-items"
          ],
          "query": [
            {
              "key": "formFactor",
              "value": "Small",
              "description": "The form factor for each app that the user has access to (`Large`, `Medium` or `Small`)"
            },
            {
              "key": "navItemNames",
              "value": null,
              "description": "A comma delimited list of TabDefinition name values to include in the response.",
              "disabled": true
            },
            {
              "key": "page",
              "value": "1",
              "description": "The page offset form which to begin returning nav items. The default value is 0, which returns nav items from the first page. For example, for `page=2` and `pageSize=10`, the first nav item returned is the 21st nav item in the list."
            },
            {
              "key": "pageSize",
              "value": "5",
              "description": "The maximum number of nav items to return on a page. The default value is 25."
            }
          ]
        }
      },
      "status": "OK",
      "code": 200,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "Date",
          "value": "Fri, 06 Oct 2023 09:45:07 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": "ETag",
          "value": "\"425dfe9232c5bd0e9c6e4b94771c91b8--gzip\""
        },
        {
          "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    \"currentPageUrl\": \"/services/data/v58.0/ui-api/nav-items?formFactor=Small&page=1&pageSize=5\",\n    \"eTag\": \"425dfe9232c5bd0e9c6e4b94771c91b8\",\n    \"navItems\": [\n        {\n            \"availableInClassic\": true,\n            \"availableInLightning\": true,\n            \"color\": null,\n            \"content\": \"https://pozil-dev-ed.my.salesforce.com/4nK/o\",\n            \"custom\": false,\n            \"developerName\": \"standard-AssetStatePeriod\",\n            \"iconUrl\": null,\n            \"id\": null,\n            \"itemType\": \"Entity\",\n            \"label\": \"Asset State Periods\",\n            \"objectApiName\": \"AssetStatePeriod\",\n            \"objectLabel\": \"Asset State Period\",\n            \"objectLabelPlural\": \"Asset State Periods\",\n            \"pageReference\": {\n                \"attributes\": {\n                    \"objectApiName\": \"AssetStatePeriod\",\n                    \"actionName\": \"home\"\n                },\n                \"state\": {},\n                \"type\": \"standard__objectPage\"\n            },\n            \"standardType\": null\n        },\n        {\n            \"availableInClassic\": true,\n            \"availableInLightning\": true,\n            \"color\": null,\n            \"content\": \"https://pozil-dev-ed.my.salesforce.com/02i/o\",\n            \"custom\": false,\n            \"developerName\": \"standard-Asset\",\n            \"iconUrl\": null,\n            \"id\": null,\n            \"itemType\": \"Entity\",\n            \"label\": \"Assets\",\n            \"objectApiName\": \"Asset\",\n            \"objectLabel\": \"Asset\",\n            \"objectLabelPlural\": \"Assets\",\n            \"pageReference\": {\n                \"attributes\": {\n                    \"objectApiName\": \"Asset\",\n                    \"actionName\": \"home\"\n                },\n                \"state\": {},\n                \"type\": \"standard__objectPage\"\n            },\n            \"standardType\": null\n        },\n        {\n            \"availableInClassic\": true,\n            \"availableInLightning\": true,\n            \"color\": null,\n            \"content\": \"https://pozil-dev-ed.my.salesforce.com/0cI/o\",\n            \"custom\": false,\n            \"developerName\": \"standard-AuthorizationForm\",\n            \"iconUrl\": null,\n            \"id\": null,\n            \"itemType\": \"Entity\",\n            \"label\": \"Authorization Form\",\n            \"objectApiName\": \"AuthorizationForm\",\n            \"objectLabel\": \"Authorization Form\",\n            \"objectLabelPlural\": \"Authorization Forms\",\n            \"pageReference\": {\n                \"attributes\": {\n                    \"objectApiName\": \"AuthorizationForm\",\n                    \"actionName\": \"home\"\n                },\n                \"state\": {},\n                \"type\": \"standard__objectPage\"\n            },\n            \"standardType\": null\n        },\n        {\n            \"availableInClassic\": true,\n            \"availableInLightning\": true,\n            \"color\": null,\n            \"content\": \"https://pozil-dev-ed.my.salesforce.com/0cK/o\",\n            \"custom\": false,\n            \"developerName\": \"standard-AuthorizationFormConsent\",\n            \"iconUrl\": null,\n            \"id\": null,\n            \"itemType\": \"Entity\",\n            \"label\": \"Authorization Form Consent\",\n            \"objectApiName\": \"AuthorizationFormConsent\",\n            \"objectLabel\": \"Authorization Form Consent\",\n            \"objectLabelPlural\": \"Authorization Form Consents\",\n            \"pageReference\": {\n                \"attributes\": {\n                    \"objectApiName\": \"AuthorizationFormConsent\",\n                    \"actionName\": \"home\"\n                },\n                \"state\": {},\n                \"type\": \"standard__objectPage\"\n            },\n            \"standardType\": null\n        },\n        {\n            \"availableInClassic\": true,\n            \"availableInLightning\": true,\n            \"color\": null,\n            \"content\": \"https://pozil-dev-ed.my.salesforce.com/0cM/o\",\n            \"custom\": false,\n            \"developerName\": \"standard-AuthorizationFormDataUse\",\n            \"iconUrl\": null,\n            \"id\": null,\n            \"itemType\": \"Entity\",\n            \"label\": \"Authorization Form Data Use\",\n            \"objectApiName\": \"AuthorizationFormDataUse\",\n            \"objectLabel\": \"Authorization Form Data Use\",\n            \"objectLabelPlural\": \"Authorization Form Data Uses\",\n            \"pageReference\": {\n                \"attributes\": {\n                    \"objectApiName\": \"AuthorizationFormDataUse\",\n                    \"actionName\": \"home\"\n                },\n                \"state\": {},\n                \"type\": \"standard__objectPage\"\n            },\n            \"standardType\": null\n        }\n    ],\n    \"nextPageUrl\": \"/services/data/v58.0/ui-api/nav-items?formFactor=Small&page=2&pageSize=5\"\n}"
    }
  ]
}