我是 swagger-node 的新手,我正在创建一个返回布尔类型数据的 API 方法。该方法的yaml是:
/IsBooting:
get:
summary: "Returns if the device is booting"
description: "Returns true when is in booting state"
x-swagger-router-controller: printer_status
operationId: IsBooting
responses:
200:
description: "Returns a bool that indicates if the deviceis booting"
schema:
type: "boolean"
default:
description: "Unexpected error"
schema:
$ref: "#/definitions/Error"
此 API 方法调用的控制器中的方法是:
function IsBooting(req, res) {
res.json(false)
}
当我使用 PostMan 调用此方法时,某些验证失败并显示以下消息:
Error: Response validation failed: not a valid boolean: false
at throwErrorWithCode (C:\...\node_modules\swagger-express-mw\node_modules\swagger-node-runner\node_modules\swagger-tools\lib\validators.js:121:13)
at validateTypeAndFormat (C:\...\node_modules\swagger-express-mw\node_modules\swagger-node-runner\node_modules\swagger-tools\lib\validators.js:536:7)
at Object.module.exports.validateSchemaConstraints (C:\...\node_modules\swagger-express-mw\node_modules\swagger-node-runner\node_modules\swagger-tools\lib\validators.js:627:7)
at validateValue (C:\...\node_modules\swagger-express-mw\node_modules\swagger-node-runner\node_modules\swagger-tools\middleware\swagger-validator.js:117:16)
at ServerResponse.res.end (C:\...\node_modules\swagger-express-mw\node_modules\swagger-node-runner\node_modules\swagger-tools\middleware\swagger-validator.js:242:9)
at ServerResponse.send (C:\...\node_modules\express\lib\response.js:204:10)
at ServerResponse.json (C:\...\node_modules\express\lib\response.js:249:15)
at IsBooting (C:\...\api\controllers\printer_status.js:54:7)
at swaggerRouter (C:\...\node_modules\swagger-express-mw\node_modules\swagger-node-runner\node_modules\swagger-tools\middleware\swagger-router.js:407:20)
at swagger_router (C:\...\node_modules\swagger-express-mw\node_modules\swagger-node-runner\fittings\swagger_router.js:31:5)
我不知道如何做出包含数据的响应。如果我使用字符串作为类型,或者如果我创建一个封装布尔值的新复杂类型,我可以发送它,但我认为没有很好的解决方案......
你有什么主意吗?