[英]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.