📅  最后修改于: 2023-12-03 15:33:05.982000             🧑  作者: Mango
NestJS 是一种现代化的 Node.js 框架,它使用 TypeScript 构建。其主要特点是具有强类型的依赖注入系统、模块化的结构和内置的测试支持。NestJS 的目标是提供一个可扩展、可靠和易于维护的应用程序架构。
在 NestJS 中,我们可以使用 OpenAPI(原名:Swagger)作为我们的 API 文档和设计工具。OpenAPI 是一个开放式标准,它定义了一种描述 RESTful API 的格式。使用 OpenAPI,我们可以生成基于 YAML 或 JSON 的文档,使得我们的 RESTful API 更加标准化和易于使用。
在 NestJS 中,我们可以使用 @nestjs/swagger
模块生成我们的 OpenAPI YAML 文件。安装此模块后,我们可以在 main.ts
文件中配置 Swagger:
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
const options = new DocumentBuilder()
.setTitle('API Title')
.setDescription('API Description')
.setVersion('1.0')
.build();
const document = SwaggerModule.createDocument(app, options);
SwaggerModule.setup('api', app, document);
await app.listen(3000);
}
bootstrap();
在上面的示例中,我们使用 DocumentBuilder
构建器来定义我们的 API 标题、描述和版本信息。然后,我们使用 SwaggerModule.createDocument()
方法创建我们的 Swagger 文档。最后,我们使用 SwaggerModule.setup()
方法将 Swagger UI 与我们的 NestJS 应用程序绑定。
一旦我们的 NestJS 应用程序运行,我们可以通过 http://localhost:3000/api
访问生成的 Swagger UI。Swagger UI 将显示我们的 API 文档,并允许我们在其中测试我们的 API 端点。
Swagger UI 的外观和功能可根据需要进行自定义。如果需要更多的功能,我们可以使用 @nestjs/swagger
模块提供的一些其他特性,例如:
@ApiModelProperty()
装饰器:用于描述 API 模型的属性。@ApiTags()
装饰器:用于定义 API 路由的标签。@ApiResponse()
装饰器:用于定义 API 响应的详细信息。NestJS 是一种现代化的 Node.js 框架,使用 TypeScript 构建。我们可以使用 @nestjs/swagger
模块生成我们的 OpenAPI YAML 文件,并在 main.ts
文件中配置 Swagger。一旦配置完成,我们可以访问生成的 Swagger UI 并测试我们的 API 端点。