How to update a List Box type variable in XL Release using REST API?

Follow

Shashank Srivastava -

Scenario
You want to automate updation of List Box type variable using REST API so that you can add multiple list items to it.
Environment

XL Release, REST API

Steps to Perform

1. Find the variable ID of the variable you want to update.

For this, run a GET call against your Release that contains variables.

http://localhost:5516/api/v1/releases/Applications/Release183308661/variables

It will produce output like below.

[
{
"id": "Applications/Release183308661/Variable161627602",
"type": "xlrelease.StringVariable",
"$token": "e25e975c-01b9-4377-8b31-053ab62cf214",
"$createdBy": "admin",
"$createdAt": "2017-07-18T07:41:33.220+0200",
"$lastModifiedBy": "admin",
"$lastModifiedAt": "2017-07-18T22:13:51.993+0200",
"key": "usernames",
"requiresValue": false,
"showOnReleaseStart": false,
"label": "usernames",
"valueProvider": {
"id": "Applications/Release183308661/Variable161627602/valueProvider",
"type": "xlrelease.ListOfStringValueProviderConfiguration",
"$token": "c8f850c7-6747-4514-b84c-530a4640f976",
"$createdBy": "admin",
"$createdAt": "2017-07-18T07:41:33.221+0200",
"$lastModifiedBy": "admin",
"$lastModifiedAt": "2017-07-18T22:13:51.891+0200",
"variable": "Applications/Release183308661/Variable161627602",
"values": [
"shashank"
]
}
},
{
"id": "Applications/Release183308661/Variable881681321",
"type": "xlrelease.StringVariable",
"$token": "3c4b08b5-8d5f-40d8-8474-0a1555cbcd0f",
"$createdBy": "admin",
"$createdAt": "2017-07-18T08:20:31.125+0200",
"$lastModifiedBy": "admin",
"$lastModifiedAt": "2017-07-18T08:20:31.125+0200",
"key": "userid",
"requiresValue": false,
"showOnReleaseStart": false,
"label": "userid",
"description": "User IDs",
"value": "shashank"
}
]

You can see that I have 2 variables here. userid & usernames. usernames is a List Box type variable with variable ID Applications/Release183308661/Variable161627602. This List Box has only 1 list item i.e. shashank.

2. Copy the JSON skeleton of this variable. It means, copy below section only.

{
"id": "Applications/Release183308661/Variable161627602",
"type": "xlrelease.StringVariable",
"$token": "e25e975c-01b9-4377-8b31-053ab62cf214",
"$createdBy": "admin",
"$createdAt": "2017-07-18T07:41:33.220+0200",
"$lastModifiedBy": "admin",
"$lastModifiedAt": "2017-07-18T22:13:51.993+0200",
"key": "usernames",
"requiresValue": false,
"showOnReleaseStart": false,
"label": "usernames",
"valueProvider": {
"id": "Applications/Release183308661/Variable161627602/valueProvider",
"type": "xlrelease.ListOfStringValueProviderConfiguration",
"$token": "c8f850c7-6747-4514-b84c-530a4640f976",
"$createdBy": "admin",
"$createdAt": "2017-07-18T07:41:33.221+0200",
"$lastModifiedBy": "admin",
"$lastModifiedAt": "2017-07-18T22:13:51.891+0200",
"variable": "Applications/Release183308661/Variable161627602",
"values": [
"shashank"
]
}

3. Update your variable.

For this, we need to run a PUT call and supply a payload(JSON) with additional list values. Suppose, I want to add xlr_dev & xlr_admin as list items. To do this, I will use the JSON skeleton copied from above step & add 2 more users to it. 

Below is the PUT call.

http://localhost:5516/api/v1/releases/Applications/Release183308661/Variable161627602 
{
"id": "Applications/Release183308661/Variable161627602",
"type": "xlrelease.StringVariable",
"$token": "e25e975c-01b9-4377-8b31-053ab62cf214",
"$createdBy": "admin",
"$createdAt": "2017-07-18T07:41:33.220+0200",
"$lastModifiedBy": "admin",
"$lastModifiedAt": "2017-07-18T22:13:51.993+0200",
"key": "usernames",
"requiresValue": false,
"showOnReleaseStart": false,
"label": "usernames",
"valueProvider": {
"id": "Applications/Release183308661/Variable161627602/valueProvider",
"type": "xlrelease.ListOfStringValueProviderConfiguration",
"$token": "c8f850c7-6747-4514-b84c-530a4640f976",
"$createdBy": "admin",
"$createdAt": "2017-07-18T07:41:33.221+0200",
"$lastModifiedBy": "admin",
"$lastModifiedAt": "2017-07-18T22:13:51.891+0200",
"variable": "Applications/Release183308661/Variable161627602",
"values": [
"shashank",
"xlr_dev",
"xlr_admin"
]
}
}

It will produce an output similar to above JSON & will update your variable in XL Release GUI.

Variable_updated.png

Caveats (if any).

You need to copy JSON ONLY for the variable which is of type List Box. And after this, you need to add the values before supplying it to the PUT call as payload.

 

Additional Information

Not Applicable.

Tags
 xl-release, how-to, variable, list box, update, REST API
Have more questions? Submit a request
Powered by Zendesk