Как я могу использовать модуль URI в сценарии предварительного запроса Postman? - PullRequest
0 голосов
/ 08 мая 2020

Мне нужно создать auth ha sh для вызова веб-API в моем сценарии предварительного запроса Postman. Моя коллекция хранит URL-адрес службы в переменной уровня коллекции с именем baseUrl. Значение этой переменной - http://api-server.local

К сожалению, переменная baseUrl не раскрывается, когда я пытаюсь напрямую использовать ее из pm.request.url. Я возвращаю значение {{baseUrl}} в свойстве host pm.request.url в моем сценарии предварительного запроса.

Я предполагаю, что оценка происходит позже в конвейере создания запроса.

Итак, я добавил новую переменную в свою коллекцию под названием baseUrlHost со значением api-server.local. Я намеревался использовать эту новую переменную для правильной установки хоста в моем auth ha sh.

Вместо того, чтобы делать полную замену строк, я бы предпочел создать новый объект Url. Согласно документации Postman , доступен модуль Url Node.js. Однако когда я создаю объект Url, он в основном полон нулевых свойств.

var Url = require('url').Url;
//another variation of the above...
//const {Url } = require('url')

var collectionBaseUrl = pm.collectionVariables.get("baseUrl")

console.log('base url from collection: ', collectionBaseUrl);

//base url from collection should be : http://api-server.local

var baseUrl = new Url(collectionBaseUrl);

console.log('base url ctor: ', baseUrl);

Вот результат ...

base url ctor: 
{protocol: null, slashes: null, auth: null…}
protocol: null
slashes: null
auth: null
host: null
port: null
hostname: null
hash: null
search: null
query: null
pathname: null
path: null
href: null

Что мне делать иначе, чтобы правильно инициализировать объект Url?

1 Ответ

0 голосов
/ 08 мая 2020

Попробуйте, как показано ниже, в сценарии предварительного запроса

const url = require('url');
var urlObject = url.parse(request.url);

console.log(urlObject);
...