Articles of swagger ui

优点与缺点:在生产环境中使用Swagger中间件

我正在使用Swagger构build高stream量API,并且正在寻找在高stream量生产环境中使用Swagger的build议。 我的重点是性能和安全性。 我已经看到了许多在节点项目中实现Swagger的方法,批量使用两种方法: 1)使用npm-swagger-express-mw和npm-swagger-tools等中间件拦截路由,通过读取符合Swagger的yaml或JSON文件来validationinput,生成默认错误响应并注册路由。 这与Express一起创build了辅助路由抽象层。 下面是我的一个“hello world”示例,遵循这样的模式: https://github.com/ChristianRich/swagger-api-demo 2)仅使用Swagger生成API文档。 现场应用程序运行得很好,没有任何“Swagger”安装。 任何有这方面经验的人都会分享一些见解吗? 这可能会在笔或性能testing中引起一片红旗吗?

无法从http:// localhost:3000 / sw-import.js / resources中读取Swagger JSON

我是新来的节点和大招,并正在通过loopback.io示例来尝试和build立一个API。 我的机器上安装了node,strongloop。 我创build了一个新的环回应用程序,并build立了一个快速的“用户”模型,并尝试运行swagger explorer来查看是否可以查看这些API。 但是,我运行localhost时出现以下错误:3000 / explorer / 有任何想法吗?

招摇过市没有模式

我正在使用节点的招摇。 这工作正常。 我想发布json主体而不用定义详细的模式。 例如下面我不想指定对象的属性。 有没有办法做到这一点? /pets: post: description: Add new parameters: – name: id in: body description: data to post required: true type: object responses: '200': description: A list of pets schema: type : string 这不是渲染textarea发布json数据。

Swagger UI不发送url的参数

我正在构build一个使用MongoDB和mongoose的应用程序的api,我正在使用Swagger UI来testing它,我做了一个删除路线: app.delete '/venues/:id', venueController.delete venueController.delete看起来像这样(在coffeescript): exports.delete = (req, res) -> console.log req.params.id Venue.remove id: req.params.id .then (dbVenue) -> res.json dbVenue .catch (err) -> console.log err res.sendStatus(500).end err.message 在swagger UI中我input一个id并发送删除请求,但是req.params.id的console.log只是吐出":id"而不是我input的id。 我该如何解决?

JSON / Nodejs / swagger:在swagger中显示的快速响应string中没有翻译成多行的换行符

我在一个nodejs服务器上通过一个明确的参考发送回JSON作为响应,并显示给swagger ui客户端进行显示。 其中一些响应可能是日志,可能包含错误堆栈,所以我想用多行显示堆栈。 但我尝试了各种各样的字符即。 \n, \r\n, \\n, <br>(wild guess)但没有任何工作。 示例代码: app.post('/xyz', function (req, res) { res.status(400).send("MyError\nMyErrorStack:\nStackLine1\nStackline2") } 在swagger浏览器客户端中显示为: "MyError\nMyErrorStack:\nStackLine1\nStackline2" 代替: "MyError MyErrorStack: StackLine1 Stackline2" 有一些解决scheme,或者我使用错误的字符?

如何为包含许多Swagger定义.json / .yml文件的目录组织/构build一个Swagger UI界面

我试图通过Swagger UI来logging供应商产品(WSO2 ESB)中开发的现有API服务的内部公司消耗。 供应商产品不支持招摇。 我计划以编程方式检查/处理我的API服务(写在供应商产品中)的源代码,并生成.json或.yml格式的swagger定义文件的目录/文件夹/库。 这很好,我可以做到这一点。 这些api定义文件中的每一个都将在swagger UI中很好地呈现,我正在使用https://www.npmjs.com/package/swagger-ui 。 我的问题是我最终会有大约100个这样的API定义文件,我想提供一些全面的界面/页面,其中列出了所有的API,然后将用户带到用户点击时加载的特定API定义的Swagger UI在其中一个链接上。 这相当于打开我本地的swagger-ui,并在相关API定义的path中手动input/复制。 这工作正常,如果我手动做,我只是不希望用户必须手动执行此操作。 他们如何知道API定义url的存在以及为什么要手动input/复制它们。 我看不到如何将“apiDefintionToLoad”parameter passing给Swagger-ui,我想我会find一个或更改来源支持。 这是否存在? 有没有更好的解决scheme,要么开发自己,要么使用现有的软件包或解决scheme? 我更喜欢基于节点的解决scheme,Java也行。 我是否在这个错误? 谢谢,Matt。

我们可以有Swagger多个subapi吗?

我正在开发一个nodeJS系统,我使用requireJS和Swagger。 现在,我准备创build我的网站的新版本。 我们可以有多个subapi与招摇。 我的意思是,目前我的swagger api位于localhost:2052 / docs,我希望我的系统有2个apis: localhost:2052 / docs和 本地主机:2052 / 2.0 /文档 如果是的话,是否有可能招摇过市呢?

如何使用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错误信息。 […]

如何使用express从不同的中间件中获取响应对象的数据

可能是这个愚蠢的问题.. :)有些可以帮助我从响应对象获取数据。 基本上我想用express来validation我的响应数据 app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); app.use('/', function(req, res, next){ console.log('entry point'); res.json({name:"somename",age: 29}); next() }); var middleware = function (req, res, next) { console.log('LOGGED'); res.end = function (req, res , next) { var data = res.data; //do some validation logic here next() }}; app.use(middleware); var port = process.env.PORT || 10010; app.listen(port);

用逻辑AND招摇节点多个安全处理程序

我有一个swagger节点快递应用程序,我不知道如何有两个安全处理程序? 我在swagger.yaml中有两个SecurityDefinitions securityDefinitions: appKeyA: type: apiKey name: Authorization in: header appKeyB: type: apiKey in: header name: X-APP-ID 在我的路线 /foo security: – appKeyA: [] appKeyB: [] 所以逻辑和 在我的app.js app.use( middleware.swaggerSecurity({ //manage token function in the 'auth' module appKeyA: auth.verifyToken }) ); 它成功运行我的verifyToken函数中的代码 exports.verifyToken = function(req, authOrSecDef, token, callback) { … } 现在我在哪里把第二个函数,以防止得到错误:未知的安全处理程序:appKeyB 谢谢