kapperkp
kapperkp

Reputation: 309

Postman - How to store multiple values from a response header in a var or just be able to see them

Using a GET in postman with the URL posted below, I am able to store the entire response header in question with all of its data in a var, the issue for me is how do I verify the pieces of data inside that var

here is my URL http://localhost/v1/accounts?pageNumber=1&pageSize=2

[here is my response header[1]

using postman I am able to get the above in a var

var XPaginationData = postman.getResponseHeader(pm.globals.get("PaginationHeader"));
pm.globals.set("XPaginationData", XPaginationData);

is there a way to get the individual values inside the response header X-Pagination stored in a different var to assert later

using this in postman

pm.globals.set("XPaginationData", JSON.stringify(pm.response.headers));
console.log(JSON.parse(pm.globals.get('XPaginationData')));
console.log(JSON.parse(pm.globals.get('XPaginationData'))[4].value);

I get enter image description here

how would i go about getting "TotalCount" for example

BIG EDIT:

thanks to a coworker, the solution is this

//Filtering Response Headers to get PaginationHeader
var filteredHeaders = pm.response.headers.all()
    .filter(headerObj => {
        return headerObj.key == pm.globals.get("PaginationHeader");

    });

// JSON parse the string of the requested response header
// from var filteredHeaders
var paginationObj = filteredHeaders[0].value;
paginationObj = JSON.parse(paginationObj);


//Stores global variable for nextpageURL
var nextPageURL = paginationObj.NextPageLink;
postman.setGlobalVariable("nextPageURL", nextPageURL);

Upvotes: 2

Views: 4805

Answers (2)

Saravanan V
Saravanan V

Reputation: 89

Looks like an issue with Postman itself.

The only solution that worked for me was to stringify & parse the JSON again, like this:

var response = JSON.parse(JSON.stringify(res))

After doing this, the headers and all other properties are accessible as expected.

Upvotes: 1

Danny Dainton
Danny Dainton

Reputation: 25891

You could use JSON.stringfy() when saving the environment variable and then use JSON.parse() to access the different properties or property that you need.

If you set a global variable for the response headers like this:

pm.globals.set('PaginationHeader', JSON.stringify(pm.response.headers))

Then you can get any of the data from the variable like this:

console.log(JSON.parse(pm.globals.get('PaginationHeader'))[1].value)

The image shows how this works in Postman. The ordering of the headers returned in the console is inconsistent so you will need to find the correct one to extract data from the X-Pagination header

Postman

Upvotes: 1

Related Questions