【问题标题】:How to use swagger-autogen with TypeScript如何在 TypeScript 中使用 swagger-autogen
【发布时间】:2022-07-27 10:03:58
【问题描述】:

我想知道是否可以在 Typescript 项目中使用 swagger-autogen 模块。 我尝试了许多不同的方法,但无事可做。它总是说“失败”。 在 swagger.js 文件中:

const swaggerAutogen = require("swagger-autogen")();
const options = {...}

const outputFile = './docs/swagger-output.json';
const endpointsFiles = ['./app.ts'];

swaggerAutogen(outputFile, endpointsFiles, options);

我尝试将文件放在 dist 目录中,但同样的错误... 对不起,如果这是一个愚蠢的问题,或者我只是错过了一个关键点。

【问题讨论】:

    标签: typescript swagger auto-generate


    【解决方案1】:

    您可以做的一件事是尝试在endpointsFiles 变量中指定您的路由文件(例如router.ts 或router/index.ts)。请记住,swagger-autogen 只对文件进行静态分析,也就是说,如果您的路由属性是在运行时动态生成的,swagger-autogen 将无法解释您的代码。

    注意:更新到最新版本的库,因为它包含一些关于 TypeScript 的错误修复。

    【讨论】:

      【解决方案2】:

      我尝试用 path.join 包装端点文件,它成功地工作了!只要确保我们先构建,然后从 build/dist 文件夹运行 swagger.js 文件。

      import path from 'path';
      import swaggerAutogen from 'swagger-autogen';
      
      const doc = {...} // update doc
      const outputFile = './swagger-output.json';
      const endpointsFiles = [path.join(__dirname, 'routes/routes.js')];
      swaggerAutogen()(outputFile, endpointsFiles, doc);
      

      【讨论】:

        猜你喜欢
        • 2022-12-26
        • 1970-01-01
        • 2023-03-31
        • 2017-01-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多