我使用swager-jsdoc来记录应用程序的所有DTO。
我想知道有没有什么方法可以从typescript接口自动生成swagger文档。
我在项目中有很多这样的模式,还有很多 Mongoose 模式和模型。让它们保持同步变得越来越乏味。另一方面,我不想使用swagger生成工具。我更喜欢自下而上的方法。
干杯
我使用swager-jsdoc来记录应用程序的所有DTO。
我想知道有没有什么方法可以从typescript接口自动生成swagger文档。
我在项目中有很多这样的模式,还有很多 Mongoose 模式和模型。让它们保持同步变得越来越乏味。另一方面,我不想使用swagger生成工具。我更喜欢自下而上的方法。
干杯
3条答案
按热度按时间vh0rcniy1#
tsoa的另一个选项是routing-controllers + routing-controllers-openapi。两者(AFAIK)的主要区别在于
tsoa
依赖于代码生成,而routing-controllers
完全在运行时运行。这两种方法都有其优点:tsoa
能够例如利用更丰富的元数据(如代码注解),而使用routing-controllers
,我们可以跳过生成步骤。我的建议是两个都去看看!还有一个选项是typescript-json-schema,它从Typescript接口生成JSON Schema;在JSON Schema中定义了模型之后,您就离OpenAPI规范不远了。
rekjcdws2#
是的,您可以通过使用tsoa从TypeScript类型轻松生成Swagger和OpenAPI文档。自述文件包含开始使用它所需的所有设置信息。它与express、hapi、koa等兼容:
https://github.com/lukeautry/tsoa的
(Full透明度:我是tsoa的维护者之一。但我首先是tsoa的消费者,我发现它是一个很棒的产品。所以我才要求帮忙维护!:))我后来退了一步,但新的维护者太棒了!
dw1jzc5e3#
另一个选项是使用https://www.npmjs.com/package/ts-to-openapi从接口生成Swagger模式。
示例:考虑以下用户界面:
字符串
在终端运行以下命令:
型
在此之后,您的界面用户将更新如下:
型