如何在没有运行服务器的情况下使用hapi-swaggered

时间:2016-01-05 20:29:11

标签: hapijs

我有一个工作hapi服务,完成hapi-swaggered和hapi-swaggered-ui。这在很多情况下很有用,但是我想在我的CI中添加一个构建步骤,它将能够获得hapi-swaggered生成的JSON(如果更改,将被编译到存储在的.Net程序集中)当地的一个人。)

我知道如果我真的想,在我的构建服务器上,我可以启动我的服务器的实例,curllocalhost:3000/swagger,杀死服务器,继续,但这似乎有点风险(即,如果我同时运行两个构建怎么办?)。

有没有人开发过直接调用hapi-swaggered API来获取原始JSON的方法?

1 个答案:

答案 0 :(得分:0)

嗯,这不会花太多时间,但我想我找到了一个解决方案。在这种情况下,internals是我的服务器。如果从另一个文件加载(required'ed),它不会自动启动,并且compose方法暴露使用hapi的Glue.compose来组装服务。然后,我似乎可以使用inject方法来模拟呼叫。

'use strict';

var internals = require('./');

internals.compose(function(err, server) {
    server.inject({ method: 'GET', url: '/swagger' }, function (response) {
        console.log(JSON.stringify(response.result));
        process.exit();
    });
});

如果我对这项技术缺少什么,我想听听它。