Chilkat Online Tools

lianja / Postman API / Update Workspace

Back to Collection Items

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

loHttp = createobject("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.

// {
//   "workspace": {
//     "name": "New Workspace updated",
//     "description": "Some description",
//     "collections": [
//       {
//         "id": "e1fc3c38-a0b8-44a3-bd44-d753a96b2e9d",
//         "name": "Straw hats",
//         "uid": "8154-e1fc3c38-a0b8-44a3-bd44-d753a96b2e9d"
//       }
//     ],
//     "environments": [
//       {
//         "id": "83a1aaa2-a204-4bd8-9b92-4d486918906b",
//         "name": "env",
//         "uid": "8154-83a1aaa2-a204-4bd8-9b92-4d486918906b"
//       }
//     ],
//     "mocks": [
//       {
//         "id": "cda672ef-1375-40e9-baee-e20ece8d7b65"
//       }
//     ],
//     "monitors": [
//       {
//         "id": "1e889bd2-3862-4be0-b2c2-9b1fe9673aec"
//       }
//     ]
//   }
// }

loJson = createobject("CkJsonObject")
loJson.UpdateString("workspace.name","New Workspace updated")
loJson.UpdateString("workspace.description","Some description")
loJson.UpdateString("workspace.collections[0].id","e1fc3c38-a0b8-44a3-bd44-d753a96b2e9d")
loJson.UpdateString("workspace.collections[0].name","Straw hats")
loJson.UpdateString("workspace.collections[0].uid","8154-e1fc3c38-a0b8-44a3-bd44-d753a96b2e9d")
loJson.UpdateString("workspace.environments[0].id","83a1aaa2-a204-4bd8-9b92-4d486918906b")
loJson.UpdateString("workspace.environments[0].name","env")
loJson.UpdateString("workspace.environments[0].uid","8154-83a1aaa2-a204-4bd8-9b92-4d486918906b")
loJson.UpdateString("workspace.mocks[0].id","cda672ef-1375-40e9-baee-e20ece8d7b65")
loJson.UpdateString("workspace.monitors[0].id","1e889bd2-3862-4be0-b2c2-9b1fe9673aec")

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

loSbRequestBody = createobject("CkStringBuilder")
loJson.EmitSb(loSbRequestBody)

loResp = loHttp.PTextSb("PUT","https://api.getpostman.com/workspaces/{{workspace_id}}",loSbRequestBody,"utf-8","application/json",.F.,.F.)
if (loHttp.LastMethodSuccess = .F.) then
    ? loHttp.LastErrorText
    release loHttp
    release loJson
    release loSbRequestBody
    return
endif

loSbResponseBody = createobject("CkStringBuilder")
loResp.GetBodySb(loSbResponseBody)

loJResp = createobject("CkJsonObject")
loJResp.LoadSb(loSbResponseBody)
loJResp.EmitCompact = .F.

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

lnRespStatusCode = loResp.StatusCode
? "Response Status Code = " + str(lnRespStatusCode)
if (lnRespStatusCode >= 400) then
    ? "Response Header:"
    ? loResp.Header
    ? "Failed."
    release loResp
    release loHttp
    release loJson
    release loSbRequestBody
    release loSbResponseBody
    release loJResp
    return
endif

release loResp

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

// {
//   "workspace": {
//     "id": "cfbcd9bf-cc8b-4d6f-b8ef-440a3e49e29f",
//     "name": "New Workspace"
//   }
// }

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

lcId = loJResp.StringOf("workspace.id")
lcName = loJResp.StringOf("workspace.name")


release loHttp
release loJson
release loSbRequestBody
release loSbResponseBody
release loJResp

Curl Command

curl -X PUT
	-H "X-API-Key: {{postman_api_key}}"
	-H "Content-Type: application/json"
	-d '{
    "workspace": {
        "name": "New Workspace updated",
        "description": "Some description",
        "collections": [
            {
                "id": "e1fc3c38-a0b8-44a3-bd44-d753a96b2e9d",
                "name": "Straw hats",
                "uid": "8154-e1fc3c38-a0b8-44a3-bd44-d753a96b2e9d"
            }
        ],
        "environments": [
            {
                "id": "83a1aaa2-a204-4bd8-9b92-4d486918906b",
                "name": "env",
                "uid": "8154-83a1aaa2-a204-4bd8-9b92-4d486918906b"
            }
        ],
        "mocks": [
            {
                "id": "cda672ef-1375-40e9-baee-e20ece8d7b65"
            }
        ],
        "monitors": [
            {
                "id": "1e889bd2-3862-4be0-b2c2-9b1fe9673aec"
            }
        ]
    }
}'
https://api.getpostman.com/workspaces/{{workspace_id}}

Postman Collection Item JSON

{
  "name": "Update Workspace",
  "request": {
    "method": "PUT",
    "header": [
      {
        "name": "Content-Type",
        "key": "Content-Type",
        "value": "application/json"
      }
    ],
    "body": {
      "mode": "raw",
      "raw": "{\n    \"workspace\": {\n        \"name\": \"New Workspace updated\",\n        \"description\": \"Some description\",\n        \"collections\": [\n            {\n                \"id\": \"e1fc3c38-a0b8-44a3-bd44-d753a96b2e9d\",\n                \"name\": \"Straw hats\",\n                \"uid\": \"8154-e1fc3c38-a0b8-44a3-bd44-d753a96b2e9d\"\n            }\n        ],\n        \"environments\": [\n            {\n                \"id\": \"83a1aaa2-a204-4bd8-9b92-4d486918906b\",\n                \"name\": \"env\",\n                \"uid\": \"8154-83a1aaa2-a204-4bd8-9b92-4d486918906b\"\n            }\n        ],\n        \"mocks\": [\n            {\n                \"id\": \"cda672ef-1375-40e9-baee-e20ece8d7b65\"\n            }\n        ],\n        \"monitors\": [\n            {\n                \"id\": \"1e889bd2-3862-4be0-b2c2-9b1fe9673aec\"\n            }\n        ]\n    }\n}"
    },
    "url": {
      "raw": "https://api.getpostman.com/workspaces/{{workspace_id}}",
      "protocol": "https",
      "host": [
        "api",
        "getpostman",
        "com"
      ],
      "path": [
        "workspaces",
        "{{workspace_id}}"
      ]
    },
    "description": "This endpoint allows you to update a workspace and update it's association to entities like `collections`, `environments`, `mocks` and `monitors` using their `uid`.\n\nOn successful updation of the workspace, the response returns the workspcae `name` and `id`.\n\n> Requires <a href=\"#authentication\">API Key</a> as `X-Api-Key` request header or `apikey` URL query parameter.\n\n**Note** : The endpoint expects you to send the desired state of the workspace in terms of the associated entities so be careful when trying to update these entities.\n\nFor eg. if your workspace has collections A and B, and in the update call, you send C's uid in the collections array, then A and B would be removed from the workspace and C would be added."
  },
  "response": [
    {
      "name": "Specified workspace/entities do not exist",
      "originalRequest": {
        "method": "PUT",
        "header": [
          {
            "name": "Content-Type",
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "body": {
          "mode": "raw",
          "raw": "{\n    \"workspace\": {\n        \"name\": \"New Workspace updated\",\n        \"description\": \"Some description\",\n        \"collections\": [\n            {\n                \"id\": \"e1fc3c38-a0b8-44a3-bd44-d753a96b2e9d\",\n                \"name\": \"Straw hats\",\n                \"uid\": \"8154-e1fc3c38-a0b8-44a3-bd44-d753a96b2e9d\"\n            }\n        ],\n        \"environments\": [\n            {\n                \"id\": \"83a1aaa2-a204-4bd8-9b92-4d486918906b\",\n                \"name\": \"env\",\n                \"uid\": \"8153-83a1aaa2-a204-4bd8-9b92-4d486918906b\"\n            }\n        ],\n        \"mocks\": [\n            {\n                \"id\": \"cda672ef-1375-40e9-baee-e20ece8d7b65\"\n            }\n        ],\n        \"monitors\": [\n            {\n                \"id\": \"1e889bd2-3862-4be0-b2c2-9b1fe9673aec\"\n            }\n        ]\n    }\n}"
        },
        "url": {
          "raw": "https://api.getpostman.com/workspaces/{{workspace_id}}",
          "protocol": "https",
          "host": [
            "api",
            "getpostman",
            "com"
          ],
          "path": [
            "workspaces",
            "{{workspace_id}}"
          ]
        }
      },
      "status": "Not Found",
      "code": 404,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "Content-Type",
          "value": "application/json"
        }
      ],
      "cookie": [
      ],
      "body": "{\n    \"error\": {\n        \"name\": \"instanceNotFoundError\",\n        \"message\": \"The specified workspace does not exist.\"\n    }\n}"
    },
    {
      "name": "Successful Response",
      "originalRequest": {
        "method": "POST",
        "header": [
          {
            "name": "Content-Type",
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "body": {
          "mode": "raw",
          "raw": "{\n    \"workspace\": {\n        \"name\": \"New Workspace\",\n        \"description\": \"Some description\",\n        \"collections\": [\n            {\n                \"id\": \"e1fc3c38-a0b8-44a3-bd44-d753a96b2e9d\",\n                \"name\": \"Straw hats\",\n                \"uid\": \"8154-e1fc3c38-a0b8-44a3-bd44-d753a96b2e9d\"\n            }\n        ],\n        \"environments\": [\n            {\n                \"id\": \"83a1aaa2-a204-4bd8-9b92-4d486918906b\",\n                \"name\": \"env\",\n                \"uid\": \"8154-83a1aaa2-a204-4bd8-9b92-4d486918906b\"\n            }\n        ],\n        \"mocks\": [\n            {\n                \"id\": \"cda672ef-1375-40e9-baee-e20ece8d7b65\"\n            }\n        ],\n        \"monitors\": [\n            {\n                \"id\": \"1e889bd2-3862-4be0-b2c2-9b1fe9673aec\"\n            }\n        ]\n    }\n}"
        },
        "url": {
          "raw": "https://api.getpostman.com/workspaces/{{workspace_id}}",
          "protocol": "https",
          "host": [
            "api",
            "getpostman",
            "com"
          ],
          "path": [
            "workspaces",
            "{{workspace_id}}"
          ]
        }
      },
      "status": "OK",
      "code": 200,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "Content-Type",
          "value": "application/json",
          "description": {
            "content": "",
            "type": "text/plain"
          }
        }
      ],
      "cookie": [
      ],
      "body": "{\n    \"workspace\": {\n        \"id\": \"cfbcd9bf-cc8b-4d6f-b8ef-440a3e49e29f\",\n        \"name\": \"New Workspace\"\n    }\n}"
    },
    {
      "name": "Not enough permissions",
      "originalRequest": {
        "method": "PUT",
        "header": [
          {
            "name": "Content-Type",
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "body": {
          "mode": "raw",
          "raw": "{\n    \"workspace\": {\n        \"name\": \"New Workspace updated\",\n        \"type\": \"personal\",\n        \"description\": \"Some description\",\n        \"collections\": [\n            {\n                \"id\": \"e1fc3c38-a0b8-44a3-bd44-d753a96b2e9d\",\n                \"name\": \"Straw hats\",\n                \"uid\": \"8154-e1fc3c38-a0b8-44a3-bd44-d753a96b2e9d\"\n            }\n        ],\n        \"environments\": [\n            {\n                \"id\": \"83a1aaa2-a204-4bd8-9b92-4d486918906b\",\n                \"name\": \"env\",\n                \"uid\": \"8154-83a1aaa2-a204-4bd8-9b92-4d486918906b\"\n            }\n        ],\n        \"mocks\": [\n            {\n                \"id\": \"cda672ef-1375-40e9-baee-e20ece8d7b65\"\n            }\n        ],\n        \"monitors\": [\n            {\n                \"id\": \"1e889bd2-3862-4be0-b2c2-9b1fe9673aec\"\n            }\n        ]\n    }\n}"
        },
        "url": {
          "raw": "https://api.getpostman.com/workspaces/{{workspace_id}}",
          "protocol": "https",
          "host": [
            "api",
            "getpostman",
            "com"
          ],
          "path": [
            "workspaces",
            "{{workspace_id}}"
          ]
        }
      },
      "status": "Forbidden",
      "code": 403,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "Content-Type",
          "value": "application/json",
          "description": {
            "content": "",
            "type": "text/plain"
          }
        }
      ],
      "cookie": [
      ],
      "body": "{\n    \"error\": {\n        \"name\": \"forbiddenError\",\n        \"message\": \"You do not have access to update this workspace.\"\n    }\n}"
    }
  ]
}