如果您仅使用自动发现来发现数据库表,则自动生成 swagger 文档
Auto-generate swagger docs if you only use auto-discovery to discover DB tables
我想知道如果我们只使用这里概述的自动发现功能,我们是否仍然可以为我们的 Loopback API 服务器自动生成 Swagger API 文档:
https://docs.strongloop.com/display/public/LB/Discovering+models+from+relational+databases
有人知道这是否可行吗?如果我们使用自动发现,我怀疑我们模型的任何 .json 文件是否会写入我们的服务器项目,这将使生成文档变得困难。
事实证明是可以的,方法是用脚本为所有模型编写 models-x.json 文件,然后在脚本完成后启动服务器!
https://docs.strongloop.com/display/public/LB/Database+discovery+API
这是自动发现的标准做法,这是我完成此操作的代码:
const loopback = require('loopback');
const fs = require('fs');
const path = require('path');
const async = require('async');
var ds = loopback.createDataSource('postgresql', {
'host': 'localhost',
'port': 5432,
'database': 'foo',
'username': 'bar',
'password': 'baz'
});
ds.discoverModelDefinitions(function (err, models) {
async.each(models, function (def, cb) {
ds.discoverSchema(def.name, null, function (err, schema) {
if (err) {
console.error(err.stack || err);
cb(err);
}
else {
fs.writeFile(path.resolve(__dirname, 'server/models', def.name + '.json'),
JSON.stringify(schema), {}, cb);
}
});
}, function (err) {
if (err) {
console.log(err.stack || err);
process.exit(1);
}
else {
console.log(' => Successfully wrote model data.');
process.exit(0);
}
});
});
我想知道如果我们只使用这里概述的自动发现功能,我们是否仍然可以为我们的 Loopback API 服务器自动生成 Swagger API 文档:
https://docs.strongloop.com/display/public/LB/Discovering+models+from+relational+databases
有人知道这是否可行吗?如果我们使用自动发现,我怀疑我们模型的任何 .json 文件是否会写入我们的服务器项目,这将使生成文档变得困难。
事实证明是可以的,方法是用脚本为所有模型编写 models-x.json 文件,然后在脚本完成后启动服务器!
https://docs.strongloop.com/display/public/LB/Database+discovery+API
这是自动发现的标准做法,这是我完成此操作的代码:
const loopback = require('loopback');
const fs = require('fs');
const path = require('path');
const async = require('async');
var ds = loopback.createDataSource('postgresql', {
'host': 'localhost',
'port': 5432,
'database': 'foo',
'username': 'bar',
'password': 'baz'
});
ds.discoverModelDefinitions(function (err, models) {
async.each(models, function (def, cb) {
ds.discoverSchema(def.name, null, function (err, schema) {
if (err) {
console.error(err.stack || err);
cb(err);
}
else {
fs.writeFile(path.resolve(__dirname, 'server/models', def.name + '.json'),
JSON.stringify(schema), {}, cb);
}
});
}, function (err) {
if (err) {
console.log(err.stack || err);
process.exit(1);
}
else {
console.log(' => Successfully wrote model data.');
process.exit(0);
}
});
});