Chilkat Online Tools

Xojo / 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.

Dim http As New Chilkat.Http
Dim success As Boolean

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

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

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

Dim sbRequestBody As New Chilkat.StringBuilder
success = json.EmitSb(sbRequestBody)

Dim resp As Chilkat.HttpResponse
resp = http.PTextSb("PUT","https://api.getpostman.com/workspaces/{{workspace_id}}",sbRequestBody,"utf-8","application/json",False,False)
If (http.LastMethodSuccess = False) Then
    System.DebugLog(http.LastErrorText)
    Return
End If

Dim sbResponseBody As New Chilkat.StringBuilder
success = resp.GetBodySb(sbResponseBody)

Dim jResp As New Chilkat.JsonObject
success = jResp.LoadSb(sbResponseBody)
jResp.EmitCompact = False

System.DebugLog("Response Body:")
System.DebugLog(jResp.Emit())

Dim respStatusCode As Int32
respStatusCode = resp.StatusCode
System.DebugLog("Response Status Code = " + Str(respStatusCode))
If (respStatusCode >= 400) Then
    System.DebugLog("Response Header:")
    System.DebugLog(resp.Header)
    System.DebugLog("Failed.")

    Return
End If

// 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

Dim Id As String
Id = jResp.StringOf("workspace.id")
Dim Name As String
Name = jResp.StringOf("workspace.name")

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