Swagger在Hub和Editor

时间:2017-12-02 11:58:15

标签: node.js swagger swagger-editor

有Swagger编辑器(https://editor.swagger.io/)和Swagger Hub(https://swaggerhub.com/)。我认为两者都在做同样的工作,直到我注意到,源代码是不同的。 我的情况是,我在两者中都生成了一个nodejs服务器并查看了源代码。

Swagger编辑提供:

exports.getJobs = function(args, res, next) {
  /**
   * Returns all jobs
   *
   * page String page (optional)
   * returns List
   **/
  var examples = {};
  examples['application/json'] = [ {
      // my json
} ];
  if (Object.keys(examples).length > 0) {
    res.setHeader('Content-Type', 'application/json');
    res.end(JSON.stringify(examples[Object.keys(examples)[0]] || {}, null, 2));
  } else {
    res.end();
  }
}

而Swagger Hub提供:

/**
 * Returns all jobs
 *
 * page String page (optional)
 * returns List
 **/
exports.getJobs = function(page) {
  return new Promise(function(resolve, reject) {
    var examples = {};
    examples['application/json'] = [ {
            // my json
} ];
    if (Object.keys(examples).length > 0) {
      resolve(examples[Object.keys(examples)[0]]);
    } else {
      resolve();
    }
  });
}

为什么功能参数不同?在Swagger Online编辑器中

exports.getJobs = function(args, res, next)

并在Swagger Hub Editor中

exports.getJobs = function(page)

但为什么呢?哪个是正确的?如果没有通过参数res(例如设置标题),如果它没有通过?

1 个答案:

答案 0 :(得分:0)

代码生成由Swagger Codegen提供支持。显然,Swagger Editor和SwaggerHub使用不同版本的codegen。没有"对" codegen,那里只是旧版本和更新版本。您可以联系编辑开发人员和SwaggerHub开发人员,了解每个工具使用的codegen版本。

要获得一致的结果,您可以下载CLI version codegen并自行运行:

java -jar swagger-codegen-cli-2.2.3.jar generate -i http://petstore.swagger.io/v2/swagger.yaml -l nodejs-server -o Petstore