对不起,如果这个问题显而易见,但我是Express,Node和Swagger的新手。
我为API编写了一个Swagger规范。
是否有工具可以将请求传递给Swagger文档化的API以及Swagger.json文件,以验证所需的参数是否存在,这些参数的枚举值是否正确等等。
类似于:
validator.validate ("./swagger.json", req, function (req, res, err) {
if (err) {
res.status('400').send(err.message());
}
else {
// Call my controller
swaggerController(req, res);
}
});
我相信有,但很难找到,或者我找不到正确的东西。
答案 0 :(得分:0)
这是用于验证针对swagger json-schema的传入响应的中间件示例。只是一个概念证明,但它可能指向正确的方向:
答案 1 :(得分:0)
是的,你可以这样做。 有一个发电机项目正是这样,表达无压力。得到它here:
使用时,每个API请求都将根据您在Api.yaml中提供的Swagger API说明进行验证。
例如,要验证body
对POST
的{{1}}请求,您可以执行以下操作:
修改/examples
Api.yaml
接下来,在Node.js代码中为...
definitions:
# define the example body i.e. require the property name
ExampleBody:
type: object
title: example
required:
- name
properties:
name:
type: string
description: The example name
paths:
# define your /examples POST endpoint
# reference the ExamplesBody definition from above
/examples:
post:
tags:
- Examples
description: Create a new example
parameters:
- name: example
in: body
description: number of items to skip
required: true
schema:
$ref: "#/definitions/ExampleBody"
responses:
200:
description: Returns all examples
...
创建一个路由处理程序到/ examples
e.g。
POST
注意:仅包含您的处理程序逻辑。身体验证将自动处理。