[英]Use joi schema in swagger
At node.js, I just started working with swagger, and I want to integrate the parameter-validation schemas I created using 'joi' - with swagger.在 node.js,我刚开始使用 swagger,我想将使用“joi”创建的参数验证模式与 swagger 集成。
There's https://www.npmjs.com/package/joi-to-swagger but I don't understand how to use the generated object in swagger...有https://www.npmjs.com/package/joi-to-swagger但我不明白如何在 Z5DB89E7472F81A4EA6B7A73F7C6729F1 中使用生成的 object ...
This is how I use swagger:这就是我使用 swagger 的方式:
swaggerAutogen(outputFile, endpointsFiles, doc);
This is how I use joi-to-swagger:这就是我使用 joi-to-swagger 的方式:
const { swagger, components } = j2s(postVersionInfoValidator);
How do I integrate the swagger-output.json created in the first step, with the swagger object created in the 2nd step?如何将第一步创建的 swagger-output.json 与第二步创建的 swagger object 集成?
Thanks谢谢
You can do something like this你可以做这样的事情
joi-to-swagger
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
options.swagger-autogen
选项中。 Note the usage of @definitions
instead of definition
.@definitions
而不是definition
。 This is to allow us to use the Swagger schema object generated from joi-to-swagger
as is.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.