📜  nestjs openapi yaml 文件 - Javascript (1)

📅  最后修改于: 2023-12-03 15:33:05.982000             🧑  作者: Mango

NestJS OpenAPI YAML 文件 - Javascript

NestJS 是一种现代化的 Node.js 框架,它使用 TypeScript 构建。其主要特点是具有强类型的依赖注入系统、模块化的结构和内置的测试支持。NestJS 的目标是提供一个可扩展、可靠和易于维护的应用程序架构。

在 NestJS 中,我们可以使用 OpenAPI(原名:Swagger)作为我们的 API 文档和设计工具。OpenAPI 是一个开放式标准,它定义了一种描述 RESTful API 的格式。使用 OpenAPI,我们可以生成基于 YAML 或 JSON 的文档,使得我们的 RESTful API 更加标准化和易于使用。

生成 OpenAPI YAML 文件

在 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 应用程序绑定。

Swagger UI

一旦我们的 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 端点。