我使用swagger-express
npm模块来配置与我的服务器并行的api文档,这样可以帮助开发人员跟踪所有api。
我的文件夹结构是什么
/
/api
swagger/
swagger.json
swagger.yml
/swagger /*Having all the index file and configs as given their like public dir*/
我的中间件配置就像这样
var swagger = require('swagger-express');
app.use(swagger.init(app, {
apiVersion : '1.0',
swaggerVersion: '1.0',
swaggerURL : '/swagger',
swaggerJSON : 'api/swagger/swagger.json',
swaggerUI : './swagger/',
basePath : 'http://localhost:1222',
info : {
title : 'swagger-express sample app',
description: 'Swagger + Express = {swagger-express}'
},
apis : ['api/swagger/swagger.yml'],
middleware : function (req, res) {}
}));
我的服务器正在端口1222
上运行。现在尽管SwaggerUI已经成功加载但是它从wordnik的域中读取了api。
swagger.yml
swagger.yml
,那么swagger.json
discoverURL
是什么?如果我提到我的json路径(http://localhost:1222/swagger/
),那么它会以' discoveryUrl basePath必须是URL的错误结束。' 他们能以任何方式将所有apis列入服务器并行吗?所以它也可以测试?我喜欢招摇。
答案 0 :(得分:2)
嘿,试试这个https://www.npmjs.com/package/hapi-swagger
npm install hapi-swagger --save
npm install inert --save
npm install vision --save
const Hapi = require('hapi');
const Inert = require('inert');
const Vision = require('vision');
const HapiSwagger = require('hapi-swagger');
const Pack = require('./package');
const server = new Hapi.Server();
server.connection({
host: 'localhost',
port: 3000
});
const options = {
info: {
'title': 'Test API Documentation',
'version': Pack.version,
}
};
server.register([
Inert,
Vision,
{
'register': HapiSwagger,
'options': options
}], (err) => {
server.start( (err) => {
if (err) {
console.log(err);
} else {
console.log('Server running at:', server.info.uri);
}
});
});
server.route(Routes);