Articles of swagger

如何绑定一个辅助存根到超级特权的swagger-node?

我用express来使用Swagger Node ,并初始化了框架项目。 Swagger project create hello-world 然后在hello-world/api/controllers/hello_world.js我添加了一个小小的修改,需要一个助手hello_helper.js并调用它的函数helloHelper.getName() 。 'use strict'; let helloHelper = require('../helpers/hello_helper'); var util = require('util'); module.exports = { hello: hello }; function hello(req, res) { var name = req.swagger.params.name.value || helloHelper.getName(); var hello = util.format('Hello, %s!', name); res.json(hello); } 你好世界/ API /助理/ hello_helper.js 'use strict'; module.exports = {getName: getName}; function getName() […]

Swagger UI不加载昂首阔步的JSON

我在swagger-editor的帮助下做了api文档。 现在我想在swagger-ui的帮助下看到它的graphics。 我在这里部署了我的json https://powerful-escarpment-92284.herokuapp.com/swagger.json 现在,当我试图访问它,然后我得到一个错误 无法加载规范。

根据Swagger API定义来检查JSON负载是否有效

我正在使用swagger来定义我的API和API网关来承载这个API。 我发现下面的lib( 请参阅这里 )将我的API定义导入到AWS,并自动创buildAPI(模型,端点等)。 这个很酷。 但是,它无法validation基于模型的请求(在Swagger定义中定义)。 这意味着您可以发送没有必填字段的JSON负载。 我不想编写node.JS代码来检查格式,因为模式更新不会太简单。 我想知道是否有可能检查JSON有效载荷是否与在swagger(在“definitions”部分中定义的对象)中定义的特定types的对象兼容。 如果可能的话,它将允许我只更新我的大摇大摆的定义。 谢谢,罗曼。

允许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指向新的(目录 – >服务器文件夹)? […]