Chilkat Online Tools

Python / Postman API / Create API Version

Back to Collection Items

import sys
import chilkat

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

http = chilkat.CkHttp()

# Use this online tool to generate code from sample JSON: Generate Code to Create JSON

# The following JSON is sent in the request body.

# {
#   "version": {
#     "name": "1.0",
#     "source": {
#       "id": "{{apiVersionId}}",
#       "schema": true,
#       "relations": {
#         "monitor": true,
#         "mock": true,
#         "documentation": true
#       }
#     }
#   }
# }

json = chilkat.CkJsonObject()
json.UpdateString("version.name","1.0")
json.UpdateString("version.source.id","{{apiVersionId}}")
json.UpdateBool("version.source.schema",True)
json.UpdateBool("version.source.relations.monitor",True)
json.UpdateBool("version.source.relations.mock",True)
json.UpdateBool("version.source.relations.documentation",True)

http.SetRequestHeader("Content-Type","application/json")
http.SetRequestHeader("X-API-Key","{{postman_api_key}}")

# resp is a CkHttpResponse
resp = http.PostJson3("https://api.getpostman.com/apis/{{apiId}}/versions","application/json",json)
if (http.get_LastMethodSuccess() == False):
    print(http.lastErrorText())
    sys.exit()

sbResponseBody = chilkat.CkStringBuilder()
resp.GetBodySb(sbResponseBody)

jResp = chilkat.CkJsonObject()
jResp.LoadSb(sbResponseBody)
jResp.put_EmitCompact(False)

print("Response Body:")
print(jResp.emit())

respStatusCode = resp.get_StatusCode()
print("Response Status Code = " + str(respStatusCode))
if (respStatusCode >= 400):
    print("Response Header:")
    print(resp.header())
    print("Failed.")

    sys.exit()

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

# {
#   "version": {
#     "id": "d71cf403-c549-4c7c-9dc6-a6a105acf67c",
#     "name": "1.0",
#     "api": "2b95d07c-8379-4bd1-924f-e7e1af185284"
#   }
# }

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

Id = jResp.stringOf("version.id")
Name = jResp.stringOf("version.name")
Api = jResp.stringOf("version.api")

Curl Command

curl -X POST
	-H "X-API-Key: {{postman_api_key}}"
	-H "Content-Type: application/json"
	-d '{
	"version": {
		"name": "1.0",
		"source": {
			"id": "{{apiVersionId}}",
			"schema": true,
			"relations": {
				"monitor": true,
				"mock": true,
				"documentation": true
			}
		}
	}
}'
https://api.getpostman.com/apis/{{apiId}}/versions

Postman Collection Item JSON

{
  "name": "Create API Version",
  "request": {
    "method": "POST",
    "header": [
      {
        "name": "Content-Type",
        "key": "Content-Type",
        "value": "application/json"
      }
    ],
    "body": {
      "mode": "raw",
      "raw": "{\n\t\"version\": {\n\t\t\"name\": \"1.0\",\n\t\t\"source\": {\n\t\t\t\"id\": \"{{apiVersionId}}\",\n\t\t\t\"schema\": true,\n\t\t\t\"relations\": {\n\t\t\t\t\"monitor\": true,\n\t\t\t\t\"mock\": true,\n\t\t\t\t\"documentation\": true\n\t\t\t}\n\t\t}\n\t}\n}"
    },
    "url": {
      "raw": "https://api.getpostman.com/apis/{{apiId}}/versions",
      "protocol": "https",
      "host": [
        "api",
        "getpostman",
        "com"
      ],
      "path": [
        "apis",
        "{{apiId}}",
        "versions"
      ]
    },
    "description": "This call creates a new API version in the specified API.  \n\nRequest body should contain a `version` object which should have fields:\n\n<table>\n<tr>\n\t<td>name</td>\n\t<td>Required. Name of the API Version</td>\n</tr>\n<tr>\n\t<td>source</td>\n\t<td>\n\t\tIf specified, it will copy the contents of the specified api version to create a new api verison.\n\t\t<table>\n\t\t\t<tr>\n\t\t\t\t<td>id</td>\n\t\t\t\t<td>Required. Id of the apiversion from where the details are to be copied</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td>schema</td>\n\t\t\t\t<td>Boolean. If true then copies the schema from the specified api version</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td>relations</td>\n\t\t\t\t<td>Object. {\"&lt;relationType&gt;\": true/false}.  \n\t\t\t\t\tAllowed relation types are `mock`, `monitor`, `documentation`, `contracttest`, `integrationtest`, `testsuite`, `environment`\n\t\t\t\tRelation types which should be copied over to the new api verison</td>\n\t\t\t</tr>\n\t\t</table>\n\t</td>\n</tr>\n</table>\n\nResponse contains a `version` object with all the details related to the created API Version, namely, `id`, `name`, `api`.\n\n> Requires <a href=\"#authentication\">API Key</a> as `X-Api-Key` request header or `apikey` URL query parameter."
  },
  "response": [
    {
      "name": "Create API version",
      "originalRequest": {
        "method": "POST",
        "header": [
          {
            "name": "Content-Type",
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "body": {
          "mode": "raw",
          "raw": "{\n\t\"version\": {\n\t\t\"name\": \"1.0\",\n\t\t\"source\": {\n\t\t\t\"id\": \"{{apiVersionId}}\",\n\t\t\t\"schema\": true,\n\t\t\t\"relations\": {\n\t\t\t\t\"monitor\": true,\n\t\t\t\t\"mock\": true,\n\t\t\t\t\"documentation\": true\n\t\t\t}\n\t\t}\n\t}\n}"
        },
        "url": {
          "raw": "https://api.getpostman.com/apis/{{apiId}}/versions",
          "protocol": "https",
          "host": [
            "api",
            "getpostman",
            "com"
          ],
          "path": [
            "apis",
            "{{apiId}}",
            "versions"
          ]
        }
      },
      "status": "OK",
      "code": 200,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "Content-Type",
          "value": "application/json",
          "description": {
            "content": "",
            "type": "text/plain"
          }
        }
      ],
      "cookie": [
      ],
      "body": "{\n\t\"version\": {\n\t\t\"id\": \"d71cf403-c549-4c7c-9dc6-a6a105acf67c\",\n\t\t\"name\": \"1.0\",\n    \t\"api\": \"2b95d07c-8379-4bd1-924f-e7e1af185284\"\n\t}\n}"
    }
  ]
}