Mig*_*ajo 7 documentation-generation dto swagger nestjs nestjs-swagger
我有一个带有 Nest.js API 和 Angular SPA 的项目。SPA 用于与 API 通信的 DTO 位于一个名为 Models 的单独项目中,我将其用作依赖项。这样,我只需在一处更改 DTO,就可以在两个项目中重用它们。
我一直在尝试使用 Swagger 来记录我的 API @nestjs/swagger。如果我希望在 Swagger 中显示 DTO 的属性,则该库要求我在 DTO 中使用装饰器。
当我这样做时,API 中的一切都按预期工作,但 Angular SPA 会崩溃,因为它没有依赖性@nestjs/swagger。即使将其安装为应用程序的依赖项后,它仍然需要我安装@nestjs/common、express、mime、send等,并且我不应该仅仅为了文档而将所有这些后端相关依赖项安装到我的应用程序中。
你们知道如何克服这个问题或有关使用 Nest.js 生成 API 文档的其他技巧吗?
小智 0
暴露@nestjs/swagger了SwaggerModule可用于解决我们的问题。使用以下代码示例:
import { NestFactory } from "@nestjs/common"\nimport { DocumentBuilder, SwaggerModule }\xc2\xa0from "@nestjs/swagger"\nimport { writeFileSync }\xc2\xa0from "fs"\n\nconst app = await NestFactory.create(YourAppModule)\nconst documentBuilder = new DocumentBuilder()\n.setTitle("My API")\n.setDescription("OpenAPI documentation for my API")\nconst openApiDocument = SwaggerModule.createDocument(app, documentBuilder.build())\nconst openApiJsonDocument = JSON.stringify(openApiDocument, undefined, 2)\nwriteFileSync("openApi.json", openApiJsonDocument, {\xc2\xa0encoding: "utf-8" })\nRun Code Online (Sandbox Code Playgroud)\n获得后openApi.json,您可以使用@openapitools/openapi-generator-clinpm 包以您所需的编程语言和前端框架生成 API 客户端。
| 归档时间: |
|
| 查看次数: |
611 次 |
| 最近记录: |