【问题标题】:Use joi schema in swagger在招摇中使用 joi 模式
【发布时间】:2022-09-28 04:18:40
【问题描述】:

在 node.js,我刚开始使用 swagger,我想将使用 \'joi\' 创建的参数验证模式与 swagger 集成。
https://www.npmjs.com/package/joi-to-swagger 但我不明白如何在swagger中使用生成的对象...

这就是我使用招摇的方式:

swaggerAutogen(outputFile, endpointsFiles, doc);

这就是我使用 joi-to-swagger 的方式:

const { swagger, components } = j2s(postVersionInfoValidator);

如何将第一步创建的 swagger-output.json 与第二步创建的 swagger 对象集成?

谢谢

    标签: swagger joi


    【解决方案1】:

    你可以做这样的事情

    1. 使用joi-to-swagger 生成 Swagger 架构
      const { swagger: swaggerA } = j2s(joiSchemaA);
      const { swagger: swaggerB } = j2s(joiSchemaB);
      const { swagger: swaggerC } = j2s(joiSchemaC);
      
      1. 将生成的模式添加到swagger-autogen 选项中。请注意使用@definitions 而不是definition。这是为了允许我们按原样使用从joi-to-swagger 生成的 Swagger 模式对象。
      const doc = {
        info: {
          title: 'Your API',
          ...
        },
        '@definitions': {
          PayloadA: swaggerA,
          PayloadB: swaggerB,
          PayloadC: swaggerC,
        },
        ...
      };
      
      1. 将 Swagger cmets 添加到您的端点
      
      app.post('/endpoint-a', (res, req) => {
        //  #swagger.summary = 'Perform stuff'
        /*  #swagger.requestBody = {
              required: true,
              schema: { $ref: "#/definitions/PayloadA" },
            }
        */
      
        res.send('A');
      });
      
      

    【讨论】:

      猜你喜欢
      • 2015-08-15
      • 2019-07-15
      • 1970-01-01
      • 2019-04-01
      • 2021-09-28
      • 1970-01-01
      • 1970-01-01
      • 2017-10-06
      • 2014-06-11
      相关资源
      最近更新 更多