Tag: swagger

允许swagger查询参数是string或整数的数组

在使用swagger2(openAPI)构buildrestapi时,我想允许查询参数station_id支持以下内容: station_id = 23(返回工作站23) station_id = 23,45(返回工作站23和45) ?station_id = [3:14](返回工作站3到14) ?station_id = 100%(%s充当通配符,因此返回像1001,10049等东西。) 我使用下面的swagger定义(string数组)作为尝试完成此操作: parameters: – name: station_id in: query description: filter stations by station_id required: false type: array items: type: string 有了这个定义,所有的前面的例子工作,除了station_id = 23作为swaggervalidation失败与以下消息: { "message": "Validation errors", "errors": [ { "code": "INVALID_REQUEST_PARAMETER", "errors": [ { "code": "INVALID_TYPE", "params": [ "array", "integer" ], "message": […]

在部署时获得空path的关键。 本地正在工作

我正在使用swagger-jsdoc 。 一切似乎都很好,我得到的JSON,直到我使用localhost ,当我使用实时url,它没有给我什么path键即。 { "info": { "title": "App API", "version":"0.0.0", "description":"Server API documentation" }, "host":"something.com", "basePath":"/", "schemes":["https"], "swagger":"2.0", "paths":{}, "definitions":{}, "responses":{}, "parameters":{}, "securityDefinitions":{}, "tags":[] } 这就是我现场直播的内容。 相同的代码在localhost/swagger.json上工作,但不在https://something.com/swagger.json var swaggerJSDoc = require('swagger-jsdoc'); var swaggerOptions = { swaggerDefinition: config.swaggerDefinition || { info: { // API informations (required) title: 'Hello World', // Title (required) version: '1.0.0', // […]

在swagger文档中实现一个空白

我无法弄清楚如何在刚刚返回响应代码的节点中实现一个(使用swagger-node-express项目的)swagger函数 例如对于这个招摇的path: /api/user/create: x-swagger-router-controller: api get: operationId: userCreate parameters: – name: username in: query description: The username of the user. required: true type: string – name: password in: query description: The password of the user. required: true type: string – name: email in: query description: The email of the user. required: true type: string responses: […]

如何在Azure Easy API中启用Swagger UI

我正在使用Azure应用程序服务,并已经为我的手机设置了简易表的Easy API用于API后端。 我想知道如何设置Azure应用服务的Swagger UI。 当我尝试导航到API(例如https://xxxxxx.azurewebsites.net/swagger/ui )时,声明“要访问交易者UI,您必须通过添加swagger来支持swagger支持:true对您的configuration和安装swagger-ui npm模块“ 当你没有API的源代码(它是使用Easy API自动创build的)时,你如何精确添加swagger-ui npm?

node.js:抛出错误,不被捕获

我有一个使用swagger在node.js上集成了express的API和一个定义如下的资源。 swagger的默认error handling程序会捕获到(!req.params.id)检查中出现的大错误。 从mongoDB删除调用callback中引发的错误不会被捕获,给我下面的错误。 这个错误看起来像是和callback函数的范围/顺序有关,作为node.js的新手,我希望得到如何正确执行这个操作的build议,以保持asynchronous性。 -谢谢 events.js:74 throw TypeError('Uncaught,unspecified“error”event。'); ^ TypeError:未捕获,未指定的“错误”事件。 exports.remove = { 'spec' : { "collapsed…for…brevity…" : "…", "params" : [ { "paramType" : "path", "name" : "id", "collapsed…for…brevity…" : "…", }], "errorResponses" : [ swe.notFound('id'), swe.invalid('id') ], "nickname" : "remove" }, 'action' : function(req, res) { if (!req.params.id) { throw swe.invalid('id'); // […]

Rest API与Swagger和Loopback之间的区别

Swagger有助于创buildRestful Api,我明白了。 你会在哪里使用LoopBack ,这是另一个创buildRest api的工具。 LoopBack支持swagger 2.0。 我很困惑,可以互换使用。

Swagger – 更改项目目录

我在我的工作区内的根目录内创build了新的项目(nodeJS),并在一段时间后,我想分开项目的客户端和服务器端。 为此,我在项目的根目录中创build了两个文件夹(服务器和客户端),并将所有文件和目录移动到适当的文件夹中。 之后,我无法启动服务器,因为它说Swagger找不到swagger.yaml文件(我将它移动到服务器文件夹) { Error: ENOENT: no such file or directory, open 'C:\Users\User\Documents\movieCollection\api\swagger\swagger.yaml' at Error (native) at Object.fs.openSync (fs.js:634:18) at Object.fs.readFileSync (fs.js:502:33) at C:\Users\User\AppData\Roaming\npm\node_modules\swagger\lib\commands\project\project.js:283:44 at findProjectFile (C:\Users\User\AppData\Roaming\npm\node_modules\swagger\lib\commands\project\project.js:308:14) at readProject (C:\Users\User\AppData\Roaming\npm\node_modules\swagger\lib\commands\project\project.js:268:3) at Command.edit (C:\Users\User\AppData\Roaming\npm\node_modules\swagger\lib\commands\project\project.js:240:3) at Command.<anonymous> (C:\Users\User\AppData\Roaming\npm\node_modules\swagger\lib\util\cli.js:167:27) at Command.listener (C:\Users\User\AppData\Roaming\npm\node_modules\swagger\node_modules\commander\index.js:301:8) at emitTwo (events.js:106:13) errno: -4058, code: 'ENOENT', syscall: 'open', path: 'C:\\Users\\User\\Documents\\movieCollection\\api\\swagger\\swagger.yaml' } 我试图编辑节点服务器的config文件夹内的default.yaml文件,但问题仍然存在。 有没有办法将swagger项目configuration指向新的(目录 – >服务器文件夹)? […]

在node.js上大举的可空字段

我花了一大堆时间试图find解决scheme,在Node.JS中创buildswagger文档。 主库是swagger-node,在其中创build一个swagger yaml文件,然后将控制器添加到其中。 它会自动在您的应用程序中提供swagger ui文档,并根据您在yaml中指定的模型对请求和响应进行validation。 这是整洁的,但是我有一个要求,我想明确地能够返回或接受null作为一个值的一些领域,例如: { id: 123, description: "string", date_sent: null } 我不想删除date_sent键,我想明确说明它为空。 swagger规范不支持anyOf这是我相信JSON模式通常如何做。 我想知道是否有解决方法? 也许某些库可用于节点,您可以添加一个x-nullable供应商特定标志,或某种方式指定我的不需要的字段应该都是可以为空的。 我将不得不自己写一些需要我的swagger文件,然后在validation器中间件运行之前修改它,或者有人可以build议一些解决方法吗?

需要为使用nodejs / express编写的现有应用程序创buildapi文档

我有几个私人apis写在普通的旧expression。 有时间让它出来,并提供一些API文件。 我不想(至less)它重写我的快速应用程序,以将API文档整合到代码中。 主要是因为我不确定使用什么框架或规范来logging我的api,我并不想locking在一个特定的东西。 我想将文档作为我的API下的子资源的一部分(即我不想运行不同的服务器或子域)。 也许'/ api / docs'。 加号也可以是我可以embedded到我的应用程序,可以parsing文档,至less提供一个很好的文档在HTML中的表示(UI API交互是一个加号)的用户界面。 像https://github.com/swagger-api/swagger-node-express这样的东西很酷,但是需要我重新编写我所有的快速代码才能集成大举的东西。 在那个时候,我有一个很大的投资,并紧紧地联系在一起。 有没有一种方法可以放出大招或碘酒,或者其他的东西来logging我的api的方式是对现有路线的微创? 编辑: 我可以从一个手写的文档中提供Swagger规范。 我看到的问题是,你必须在swagger文档中定义basePath。 这实际上并不能让我轻松部署在不同的领域。

我应该怎样和哈比一起使用Swagger?

我有一个普通的Hapi应用程序,我计划迁移到Swagger。 我使用官方说明安装了swagger-node ,并且在执行'swagger project create'时select了Hapi 。 然而,我现在感到困惑,因为似乎有几个库集成了swagger-node和hapi: hapi-swagger :最stream行的一个 hapi-swaggered :有点受欢迎 swagger-hapi :不受欢迎,不是那么活跃,但是官方的Swagger Node.js库(即swagger-node )使用Hapi项目的默认 我虽然是“官方”的方法,但直到我试图find关于Hapi路线上的各种configuration(如授权,范围等)的信息。 似乎这些方法也有根本的不同,以Swagger定义为input并自动生成路由,而hapi-swagger和hapi-swaggered似乎有相似的方法,只生成来自普通老Hapi的Swagger API文档路由定义。 考虑到贡献者的数量和下载次数,hapi-swagger似乎是要走的路,但我不确定如何继续。 有没有一个“官方”Swaggerbuild立Hapi的方式,如果有,我该如何设置authentication(最好是使用hapi-auth-jwt2或其他类似的JWT解决scheme)和授权? 编辑:我还发现swaggerize-hapi ,这似乎是由PayPal的开源kraken.js团队维护,这表明它可能有某种企业支持(总是一件好事)。 swaggerize-hapi似乎与hapi-swagger非常相似,尽pipe后者似乎提供了更多的开箱即用function(主要是Swagger Editor)。