有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(例如设置标题),如果它没有通过?
答案 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