招摇上市 api for worknik

swagger listing api for worknik

我已经使用 swagger-express npm 模块来配置 api-documentation 与我的服务器并行,这样它可以帮助开发人员跟踪所有 apis。

我的文件夹结构是

/
/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。

  1. 它如何从我的 swagger.yml
  2. 中读取 apis
  3. 如果我提到 swagger.yml 那么 swagger.json
  4. 的相关性和用途是什么
  5. SwaggerUI 中的 discoverURL 是什么?如果我提到我的 json 路径 (http://localhost:1222/swagger/),它以 'discoveryUrl basePath must be a URL.'
  6. 之类的错误结尾

他们有什么办法可以与服务器并行列出所有 api 吗?所以它也可以测试吗?我要大摇大摆的。

嘿,试试这个 https://www.npmjs.com/package/hapi-swagger

npm install hapi-swagger --save

npm install inert --save

npm 安装视觉 --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);