[英]Use joi schema in swagger
在 node.js,我刚开始使用 swagger,我想将使用“joi”创建的参数验证模式与 swagger 集成。
有https://www.npmjs.com/package/joi-to-swagger但我不明白如何在 Z5DB89E7472F81A4EA6B7A73F7C6729F1 中使用生成的 object ...
这就是我使用 swagger 的方式:
swaggerAutogen(outputFile, endpointsFiles, doc);
这就是我使用 joi-to-swagger 的方式:
const { swagger, components } = j2s(postVersionInfoValidator);
如何将第一步创建的 swagger-output.json 与第二步创建的 swagger object 集成?
谢谢
你可以做这样的事情
joi-to-swagger
生成 Swagger 模式import j2s from 'joi-to-swagger';
const { swagger: swaggerA } = j2s(joiSchemaA);
const { swagger: swaggerB } = j2s(joiSchemaB);
const { swagger: swaggerC } = j2s(joiSchemaC);
swagger-autogen
选项中。 请注意使用@definitions
而不是definition
。 这是为了让我们能够按原样使用从 joi joi-to-swagger
生成的 Swagger 模式 object。import swaggerAutogen from 'swagger-autogen';
const outputFile = './swagger-output.json';
const apiFiles = ['./app.js'];
const doc = {
info: {
title: 'Your API',
...
},
'@definitions': {
PayloadA: swaggerA,
PayloadB: swaggerB,
PayloadC: swaggerC,
},
...
};
swaggerAutogen({ openapi: '3.0.0' })(outputFile, apiFiles, doc);
app.post('/endpoint-a', (res, req) => {
// #swagger.summary = 'Perform stuff'
/* #swagger.requestBody = {
required: true,
schema: { $ref: "#/definitions/PayloadA" },
}
*/
res.send('A');
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.