如何使用swagger-ui模块在我的MEAN堆栈项目中显示Swagger JSON文件?

我是NodeJS和AngularJS的新手,所以我可能会接近完全错误,但值得问…

我正在尝试使用swagger-ui Node模块以交互式的Swagger-ish风格显示我的API文档。

我想在我的NodeJS应用程序中通过传入我自己的Swagger JSON文件(在public/assets/my-swagger.json )执行此操作。

我假设我可以做这样的事情:

 angular.module('SwaggerCtrl', []).controller('SwaggerController', function($scope) { $scope.swagger = new function() { var swaggerUi = new SwaggerUi({ url: '../../assets/my-swagger.json', dom_id: "swagger-ui-container" }); swaggerUi.load(); }; }); 

从https://www.npmjs.com/package/swagger-ui#swaggerui取得 。

然后在我的swagger.html我会做这样的事情:

 <div class="jumbotron text-center"> <h1>Swagger</h1> <p>{{ swagger }}</p> <div id="swagger-ui-container"></div> </div> 

但是,当我去http:// localhost:8080 / swagger ,我得到ReferenceError: SwaggerUi is not defined我的控制台上ReferenceError: SwaggerUi is not defined错误信息。

我试图找出如何调用swaggerUi.load()以便当用户转到http:// localhost:8080 / swagger时加载my-swagger.json文件。

我也查看了https://www.npmjs.com/package/swagger-ui-middleware,但它正在加载在node_modules/swagger-ui/dist目录中find的默认Petstore API。

我也是新手,并使用了这两个模块:swagger-jsdoc(它会根据您的node.js文件中的注释生成swagger.json,并使用swagger-ui-express显示信息。

稍后看看doc,你可能会find你的问题的答案。