解决chrome extensions - Tabbed Postman - REST Client 无法导入问题

虽然 Postman 早就出了 Chrome Apps版本, 不过因为积累了很多老版本 Tabbed Postman 的例子, 大多数时间还是使用老版本的 Postman, 张这样:
postman.png

有次重装电脑, 把老版本里面的数据导出来, 然后想导入到新系统的 chrome的 Tabbed Postman 里面去, 不过每次都显示: it works, 却从来没有导入成功过, 原因在于 某段 JavaScript 出错, 今天为了使用某个数据, 只能手工 fix 这个 bug 了.

  1. 找到 Tabbed Postman Extension 的代码地址 (你可能要替换掉最后一部分):

    ~/Library/Application\ Support/Google/Chrome/Default/Extensions/coohjcphdfgbiolnekdpbcijmhambjff
  2. 把上面的整个文件夹复制到 ~/Download 目录下
  3. 修改 0.8.4.19_0/js/request.js (前面是我使用的 Tabbed Postman 的版本号), 修改的函数是: importCollectionData.

      importCollectionData:function (coll) {
    for (let i = 0; i < coll.collections.length; i++) {
      let collection = coll.collections[i];
      pm.indexedDB.addCollection(collection, function (c) {
          var message = {
              name:collection.name,
              action:"added"
          };
      
          $('.modal-import-alerts').append(Handlebars.templates.message_collection_added(message));
      
          var requests = [];
      
          var ordered = false;
          if ("order" in collection) {
              ordered = true;
          }
      console.log(collection);
          for (var i = 0; i < collection.requests.length; i++) {
              var request = collection.requests[i];
              request.collectionId = collection.id;
      
                /*Handling rawModeData */
              if(request.hasOwnProperty("rawModeData")) {
                  request.data = request.rawModeData;
              }  
      
      
              var newId = guid();
      
              if (ordered) {
                  var currentId = request.id;
                  var loc = _.indexOf(collection["order"], currentId);
                  collection["order"][loc] = newId;
              }
      
              request.id = newId;
      
              if ("responses" in request) {
                  var j, count;
                  for (j = 0, count = request["responses"].length; j < count; j++) {
                      request["responses"][j].id = guid();
                      request["responses"][j].collectionRequestId = newId;                        
                  }
              }
      
              pm.indexedDB.addCollectionRequest(request, function (req) {});
              requests.push(request);
          }
      
          pm.indexedDB.updateCollection(collection, function() {});
          
          collection.requests = requests;
          pm.collections.render(collection);
      });
    }
      },
  4. 然后在 Chrome Extensions 里面选择 Load unpacked, 选择刚才修改的版本, 就可以导入了.

标签: none

添加新评论