Tag: swagger

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 + Node.js的asynchronousvalidationfunction

所以,我使用Node.js + Swagger + MongoDB。 我试图validation所有请求都带有一个有效的auth_token,这是一个存储在mongo用户上的值。 我的问题是Swagger支持的validation器需要返回true或false,但是由于我必须检查Mongo来validationauth令牌,整个validation将变为asynchronous。 这里是代码,以防你需要它: swagger.addValidator( function validate(req, path, httpMethod) { var apiKey = req.headers["auth_token"]; if (!apiKey) { apiKey = url.parse(req.url,true).query["auth_token"]; } models.user.validateAuthToken(apiKey, function(err, valid) { //Here is where I know if the auth token is valid and it checks against Mongo, so it's async }); return [something]; //this is what the […]

Mongoose模型在种群后得到未定义的属性

我遇到了一个基本要求的问题。 所有我提取的mongoose模型的属性在exec()callback中都是未定义的。 这是我的模式: userSchema: new Schema({ email: { type: String, limit: 50, index: true }, password: String, birthdate: { type: Date }, active: { type: Boolean, default: true }, friends: [{ _friend: { type: Schema.ObjectId, ref: 'User' }, addedDate: { type: Date, default: Date.now } }], registrationDate: { type: Date, default: Date.now } }) 你可能已经注意到我的“friends”属性是一个引用另一个模式的对象数组。 […]

如何为包含许多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。

NodeJS API通过ID获取。 如何检测项目未find?

我正在开发一个GET端点来从数据库(dynamoDB)中获取元素。 我使用Swagger在我的api中定义数据模型。 这是我的控制器中的operationId方法: getInvoiceConfigById: function(req, res) { var myId = req.swagger.params.id.value; // InvoiceConfig is a dynamoDb model // providerId attribute is the unique key of the db table InvoiceConfig.scan('providerId') .eq(myId) .exec(function (err, config) { if (err) { console.log("Scan InvoiceConfig error"); throw err; } res.status(200).send(config); }); } 如果找不到id,我想发送404消息。 我在swagger-ui中注意到响应的主体是空的 Response Body [] 当在数据库中找不到id时。 如何在我的代码中检测到ID未find时? 我试图检查响应的主体是否为空: 如果(!(config.body)) […]

HTTPS与NodeJS swagger-express-mw npm包

我使用swagger-express-mw NPM包来创buildREST服务,当我用“swagger project start”运行项目,然后通过HTTP发布API时,我该如何使用HTTPS来代替。 我已经使用香草npm包使用HTTPS如下: var fs = require('fs'); var https = require('https'); var app = require('express')(); var options = { key : fs.readFileSync('my.private.key'), cert : fs.readFileSync('my.certificate.cer') }; app.get('/', function (req, res) { res.send('Yuhooo! Response over HTTPS!!! '); }); https.createServer(options, app).listen(8443, function () { console.log('Server started @ 8443!'); }); 但我不知道如何实现与swagger-express-mw相同,下面是我的app.js启动侦听器的代码片段。 在这里没有得到任何select使用HTTPS作为协议 SwaggerExpress.create(configuration, function(err, swaggerExpress) { […]

CORS问题使用生成的代码(SWAGGER)

我生成我的服务器代码( nodejs-server )基于我有的规格说明。 问题是,当我尝试从我的用户界面(不同的域)击中API时,我得到了知道CORS未启用的错误: XMLHttpRequest cannot load http://127.0.0.1:10010/events. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:4200' is therefore not allowed access. 我生成的index.js如下所示: 'use strict'; var fs = require('fs'), path = require('path'), http = require('http'); var app = require('connect')(); var swaggerTools = require('swagger-tools'); var jsyaml = require('js-yaml'); var serverPort = 10010; // swaggerRouter […]

Swagger 2.0中的JSON对象的模式types是什么?

我在Swagger 2.0的帮助下编写了一个API文档。 我已经生成了一个API,其中响应是在数组的书,这是正常工作。 [{ "id": 1, "book_name": "The Complete Reference Java8", "author": "Herbert Schidt", "genre": "Technology" }, { "id": 2, "book_name": "C Programming", "author": "Dennis Ritchie", "genre": "Technology" }] 昂首阔步 /fetchBooks: get: description: | Returns an array of book objects. responses: 200: description: Successful response schema: title: ArrayOfBooks type: array items: type: object properties: id: […]

提供Node / JS REST API的文档

我正在寻找使用Node和Express构buildREST API,并且希望为它提供文档。 我不想手工制作,看起来有Swagger,RAML和Api Blueprint / Apiary等forms的解决scheme。 我真正喜欢的就是使用Swabbuckle或者微软提供的解决scheme,尽可能在.NET中使用API​​代码自动生成文档,但是通过强大的input和reflection使得它们成为可能。 对于JS世界来说,正确的select是使用Swagger / RAML / Api Blueprint标记来定义API,然后从中生成文档和脚手架服务器。 前者看似简单,但我对后者不太确定。 我所见过的所有这些选项的服务器代码生成看起来都非常有限。 需要有一些方法来将自动生成的代码与手动代码分开,以便定义可以很容易地更新,而且我也没有看到任何迹象或讨论。 这似乎不是一个不可逾越的问题(我比.NET更熟悉.NET,所以我可以很容易地错过了一些东西),并提到这个问题和解决scheme正在从以前的堆栈溢出问题一年前。 任何人都可以告诉我,如果我失踪/误解任何东西,如果有解决上述问题的存在?

我们可以有Swagger多个subapi吗?

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