Articles of swagger 2.0

优点与缺点:在生产环境中使用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中引起一片红旗吗?

招摇过市没有模式

我正在使用节点的招摇。 这工作正常。 我想发布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-Pre-requisites及其在node.js中的作用

我想知道在node.js中学习swagger所需要的先决条件是什么,在node.js中是什么作用。 我需要学习YAML吗? 了解我在哪里可以find更多关于招摇大堂及其培训的信息会有帮助。

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

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) { […]

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: […]

使用严格模式进行Swaggervalidation

我正在使用Swagger工具和Swagger Spec 2.0来validation我的Node JS服务中的请求正文。 问题是带附加属性的JSON通过validation,并影响服务的内部逻辑。 有效的JSON示例: { "name": "proper object", "requiredProperty": "some value" } 仍然有效的JSON的例子,我想阻止: { "name": "proper object", "requiredProperty": "some value", "additionalProperty": "should not be here!!!" } 是否有可能使用严​​格的模式,将失败的请求包含额外的属性?

用户和angular色授权在swigger api express中

人 在我现有的api上,我已经拥有使用承载安全性的用户authentication。 使用http头api_key和后来的令牌。 我的问题似乎是我有不同的终点,只需要根据angular色消耗。 例如,发布一个新用户: POST user should only be authenticated to user with admin role. 我在这里看了一下swagger规范,但没有我能find他们的docuemation和谷歌以及。 请给我一些脑筋急转弯的想法? 下面是我在nodejs和express中的访问validation代码。 swaggerTools.initializeMiddleware(swaggerDoc, function (middleware) { // Interpret Swagger resources and attach metadata to request – must be first in swagger-tools middleware chain app.use(middleware.swaggerMetadata()); app.use(middleware.swaggerSecurity({ Bearer: function(req,def,apiKey,next){ apiKey= apiKey.slice(7) debug("token check",def,apiKey) var ok=checkToken(apiKey) if(ok) { req.user=ok debug('Token is […]

Swaggerpath的特定安全性

我有一个Node.js API,我想在其中添加swagger文档。 客户通过智威汤逊授权,所以我添加到安全: securityDefinitions: UserSecurity: type: apiKey description: User is logged in in: header name: Authorization 比我可以添加到不同的path告诉客户端,要做到这一点,你需要login。 /user/{userId} get: security: – UserSecurity: [] 但是,如何添加更具体的安全约束呢? 就像用户只能以该用户身份login时才能编辑configuration文件。 或者,如果用户具有superadmin状态,或者如果他是董事会的董事会成员,则用户可以编辑评论,评论发布在OR上或作为创build此评论的用户login。

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

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