Chilkat Online Tools

VB6 / Postman API / Get Schema

Back to Collection Items

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

Dim http As New ChilkatHttp
Dim success As Long

http.SetRequestHeader "X-API-Key","{{postman_api_key}}"

Dim sbResponseBody As New ChilkatStringBuilder
success = http.QuickGetSb("https://api.getpostman.com/apis/{{apiId}}/versions/{{apiVersionId}}/schemas/{{schemaId}}",sbResponseBody)
If (success = 0) Then
    Debug.Print http.LastErrorText
    Exit Sub
End If

Dim jResp As New ChilkatJsonObject
success = jResp.LoadSb(sbResponseBody)
jResp.EmitCompact = 0

Debug.Print "Response Body:"
Debug.Print jResp.Emit()

Dim respStatusCode As Long
respStatusCode = http.LastStatus
Debug.Print "Response Status Code = " & respStatusCode
If (respStatusCode >= 400) Then
    Debug.Print "Response Header:"
    Debug.Print http.LastHeader
    Debug.Print "Failed."
    Exit Sub
End If

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

' {
'   "schema": {
'     "id": "e3b3a0b7-34d5-4fc5-83e0-118bd9e8c822",
'     "language": "json",
'     "apiVersion": "ad810c39-df60-434e-a76f-a2192cd8d81f",
'     "type": "openapi3",
'     "createdBy": "5665",
'     "updatedBy": "5665",
'     "createdAt": "2021-05-22T13:17:07.000Z",
'     "updatedAt": "2021-05-22T13:17:07.000Z",
'     "schema": "{\n  \"openapi\": \"3.0.0\",\n  \"info\": null,\n  \"version\": \"v1.0\",\n  \"title\": \"API\",\n  \"servers\": [\n    {\n      \"url\": \"http:\/\/localhost:3000\"\n    }\n  ],\n  \"paths\": {\n    \"\/user\": {\n      \"get\": {\n        \"summary\": \"Returns details about a particular user\",\n        \"operationId\": \"listUser\",\n        \"tags\": [\n          \"user\"\n        ],\n        \"parameters\": [\n          {\n            \"name\": \"id\",\n            \"in\": \"query\",\n            \"description\": \"ID of the user\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"integer\",\n              \"format\": \"int32\"\n            }\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"Details about a user by ID\",\n            \"headers\": {\n              \"x-next\": {\n                \"description\": \"A link to the next page of responses\",\n                \"schema\": {\n                  \"type\": \"string\"\n                }\n              }\n            },\n            \"content\": {\n              \"application\/json\": {\n                \"schema\": {\n                  \"$ref\": \"\\\\'#\/components\/schemas\/User\\\\'\"\n                }\n              }\n            }\n          },\n          \"default\": {\n            \"description\": \"Unexpected error\",\n            \"content\": {\n              \"application\/json\": {\n                \"schema\": {\n                  \"$ref\": \"\\\\'#\/components\/schemas\/Error\\\\'\"\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  },\n  \"components\": {\n    \"schemas\": {\n      \"User\": {\n        \"type\": \"object\",\n        \"required\": [\n          \"id\",\n          \"name\"\n        ],\n        \"properties\": {\n          \"id\": {\n            \"type\": \"integer\",\n            \"format\": \"int64\"\n          },\n          \"name\": {\n            \"type\": \"string\"\n          },\n          \"tag\": {\n            \"type\": \"string\"\n          }\n        }\n      },\n      \"Error\": {\n        \"type\": \"object\",\n        \"required\": [\n          \"code\",\n          \"message\"\n        ],\n        \"properties\": {\n          \"code\": {\n            \"type\": \"integer\",\n            \"format\": \"int32\"\n          },\n          \"message\": {\n            \"type\": \"string\"\n          }\n        }\n      }\n    }\n  }\n}"
'   }
' }

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

Dim Id As String
Id = jResp.StringOf("schema.id")
Dim Language As String
Language = jResp.StringOf("schema.language")
Dim ApiVersion As String
ApiVersion = jResp.StringOf("schema.apiVersion")
Dim v_Type As String
v_Type = jResp.StringOf("schema.type")
Dim CreatedBy As String
CreatedBy = jResp.StringOf("schema.createdBy")
Dim UpdatedBy As String
UpdatedBy = jResp.StringOf("schema.updatedBy")
Dim CreatedAt As String
CreatedAt = jResp.StringOf("schema.createdAt")
Dim UpdatedAt As String
UpdatedAt = jResp.StringOf("schema.updatedAt")
Dim Schema As String
Schema = jResp.StringOf("schema.schema")

Curl Command

curl -X GET
	-H "X-API-Key: {{postman_api_key}}"
https://api.getpostman.com/apis/{{apiId}}/versions/{{apiVersionId}}/schemas/{{schemaId}}

Postman Collection Item JSON

{
  "name": "Get Schema",
  "request": {
    "method": "GET",
    "header": [
    ],
    "url": {
      "raw": "https://api.getpostman.com/apis/{{apiId}}/versions/{{apiVersionId}}/schemas/{{schemaId}}",
      "protocol": "https",
      "host": [
        "api",
        "getpostman",
        "com"
      ],
      "path": [
        "apis",
        "{{apiId}}",
        "versions",
        "{{apiVersionId}}",
        "schemas",
        "{{schemaId}}"
      ]
    },
    "description": "This call fetches a single schema having the specified id.\n\nResponse contains a `schema` object with all the details related to the schema, namely, `id`, `language`, `type`, `schema` etc. \n\n> Requires <a href=\"#authentication\">API Key</a> as `X-Api-Key` request header or `apikey` URL query parameter."
  },
  "response": [
    {
      "name": "Get schema",
      "originalRequest": {
        "method": "GET",
        "header": [
        ],
        "url": {
          "raw": "https://api.getpostman.com/apis/{{apiId}}/versions/{{apiVersionId}}/schemas/{{schemaId}}",
          "protocol": "https",
          "host": [
            "api",
            "getpostman",
            "com"
          ],
          "path": [
            "apis",
            "{{apiId}}",
            "versions",
            "{{apiVersionId}}",
            "schemas",
            "{{schemaId}}"
          ]
        }
      },
      "status": "OK",
      "code": 200,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "Content-Type",
          "value": "application/json",
          "description": {
            "content": "",
            "type": "text/plain"
          }
        }
      ],
      "cookie": [
      ],
      "body": "{\n\t\"schema\": {\n\t\t\"id\": \"e3b3a0b7-34d5-4fc5-83e0-118bd9e8c822\",\n\t\t\"language\": \"json\",\n\t\t\"apiVersion\": \"ad810c39-df60-434e-a76f-a2192cd8d81f\",\n\t\t\"type\": \"openapi3\",\n\t\t\"createdBy\": \"5665\",\n        \"updatedBy\": \"5665\",\n\t\t\"createdAt\": \"2021-05-22T13:17:07.000Z\",\n\t\t\"updatedAt\": \"2021-05-22T13:17:07.000Z\",\n        \"schema\": \"{\\n  \\\"openapi\\\": \\\"3.0.0\\\",\\n  \\\"info\\\": null,\\n  \\\"version\\\": \\\"v1.0\\\",\\n  \\\"title\\\": \\\"API\\\",\\n  \\\"servers\\\": [\\n    {\\n      \\\"url\\\": \\\"http:\\/\\/localhost:3000\\\"\\n    }\\n  ],\\n  \\\"paths\\\": {\\n    \\\"\\/user\\\": {\\n      \\\"get\\\": {\\n        \\\"summary\\\": \\\"Returns details about a particular user\\\",\\n        \\\"operationId\\\": \\\"listUser\\\",\\n        \\\"tags\\\": [\\n          \\\"user\\\"\\n        ],\\n        \\\"parameters\\\": [\\n          {\\n            \\\"name\\\": \\\"id\\\",\\n            \\\"in\\\": \\\"query\\\",\\n            \\\"description\\\": \\\"ID of the user\\\",\\n            \\\"required\\\": true,\\n            \\\"schema\\\": {\\n              \\\"type\\\": \\\"integer\\\",\\n              \\\"format\\\": \\\"int32\\\"\\n            }\\n          }\\n        ],\\n        \\\"responses\\\": {\\n          \\\"200\\\": {\\n            \\\"description\\\": \\\"Details about a user by ID\\\",\\n            \\\"headers\\\": {\\n              \\\"x-next\\\": {\\n                \\\"description\\\": \\\"A link to the next page of responses\\\",\\n                \\\"schema\\\": {\\n                  \\\"type\\\": \\\"string\\\"\\n                }\\n              }\\n            },\\n            \\\"content\\\": {\\n              \\\"application\\/json\\\": {\\n                \\\"schema\\\": {\\n                  \\\"$ref\\\": \\\"\\\\\\\\'#\\/components\\/schemas\\/User\\\\\\\\'\\\"\\n                }\\n              }\\n            }\\n          },\\n          \\\"default\\\": {\\n            \\\"description\\\": \\\"Unexpected error\\\",\\n            \\\"content\\\": {\\n              \\\"application\\/json\\\": {\\n                \\\"schema\\\": {\\n                  \\\"$ref\\\": \\\"\\\\\\\\'#\\/components\\/schemas\\/Error\\\\\\\\'\\\"\\n                }\\n              }\\n            }\\n          }\\n        }\\n      }\\n    }\\n  },\\n  \\\"components\\\": {\\n    \\\"schemas\\\": {\\n      \\\"User\\\": {\\n        \\\"type\\\": \\\"object\\\",\\n        \\\"required\\\": [\\n          \\\"id\\\",\\n          \\\"name\\\"\\n        ],\\n        \\\"properties\\\": {\\n          \\\"id\\\": {\\n            \\\"type\\\": \\\"integer\\\",\\n            \\\"format\\\": \\\"int64\\\"\\n          },\\n          \\\"name\\\": {\\n            \\\"type\\\": \\\"string\\\"\\n          },\\n          \\\"tag\\\": {\\n            \\\"type\\\": \\\"string\\\"\\n          }\\n        }\\n      },\\n      \\\"Error\\\": {\\n        \\\"type\\\": \\\"object\\\",\\n        \\\"required\\\": [\\n          \\\"code\\\",\\n          \\\"message\\\"\\n        ],\\n        \\\"properties\\\": {\\n          \\\"code\\\": {\\n            \\\"type\\\": \\\"integer\\\",\\n            \\\"format\\\": \\\"int32\\\"\\n          },\\n          \\\"message\\\": {\\n            \\\"type\\\": \\\"string\\\"\\n          }\\n        }\\n      }\\n    }\\n  }\\n}\"\n\t}\n}"
    }
  ]
}