将多个curl请求导入Postman

xam8gpfp  于 2023-04-11  发布在  Postman
关注(0)|答案(3)|浏览(260)

我正在尝试将curl请求列表导入Postman集合。
有了一个单一的URL,我就没有导入的问题了:

  • 我转到import→paste raw text
  • 粘贴一个像curl -X GET 'https://maps.googleapis.com/maps/api/place/findplacefromtext/json?input=gesundbrunnen&inputtype=textquery&fields=formatted_address'这样的URL,
  • 而且它是进口的,就像一个魅力。

但是如果我用两个URL尝试同一个游戏,我会得到一个错误
Error while importing Curl: Only the URL can be provided without an option preceding it. All other inputs must be specified via options.
什么意思的错误,我如何导入多个curl命令到 Postman ?

ps:题外话:也许有办法导入多个请求(GET/POST),并立即自动运行它们,除了 Postman ?

u2nhd7ah

u2nhd7ah1#

This guy说你可以用curl-to-postman写一个脚本。我还没有试过,但希望它能有所帮助。

e7arh2l6

e7arh2l62#

试试这个方法:

  • 把所有的cUrl放到一个文件中,每个cUrl一行
  • 使用“拆分”或其他工具将文件拆分为多个文件,文件中的每一行(对于拆分:分割您的文件-l 1)
  • 通过Postman导入按钮导入它们
sigwle7e

sigwle7e3#

有两种可用资源可以组合来完成此任务。

  1. curl-to-postman module
  2. postman-collection sdk module
    感谢bhargavkaranam,他已经编写了一个结合这些模块的脚本。
    Postman-Collection SDK模块用法
convertToCollection(curlRequests, (err, collection) => {
  if (err) {
    console.log('Error occurred', err);

    process.exit(1);
  }

  let postmanCollection = collection.toJSON();

  fs.writeFile('Postman-Collection.json', JSON.stringify(postmanCollection, null, 4), (err) => {
    if (err) {
      console.log('Error writing to file', err);
    }

    console.log(JSON.stringify(postmanCollection, null, 4));
  });
});

curl-to-postman模块使用

const curlToPostman = require('curl-to-postmanv2'),
  Collection = require('postman-collection').Collection;

module.exports = {
  convertToCollection: async function (curlRequests, cb) {
    if (!curlRequests) {
      console.log('No curl requests supplied!');
    
      process.exit(1);
    }

    let collection = new Collection();
    
    Promise.all(curlRequests.map((curl) => {
      return new Promise((resolve, reject) => {
        curlToPostman.convert({ type: 'string', data: curl }, (err, result) => {
          if (err) {
            return reject(err);
          }
    
          collection.items.add({ name: result.output[0] && result.output[0].data.name, request: result.output[0] && result.output[0].data });
    
          return resolve();
        });
      });
    }))
      .then(() => {
        return cb(null, collection);
      })
      .catch(cb);
  }
}

相关问题