返回

NestJs 搭建服务端应用 - 引入Swagger生成接口文档

前端

前言

在开发后端服务时,设计良好的 RESTful API 至关重要,不仅能够提供清晰的接口,还能简化客户端与服务器之间的交互。本文将介绍如何使用 NestJS 搭建服务端应用程序并引入 Swagger 为 RESTful API 生成接口文档,帮助开发人员轻松设计、测试和维护 API。

1. 搭建 NestJS 服务端应用程序

  1. 安装 NestJS CLI 工具
npm install -g @nestjs/cli
  1. 创建新项目
nest new my-nest-app
  1. 安装必要的依赖包
npm install class-transformer class-validator reflect-metadata swagger-ui-express @nestjs/swagger @nestjs/common
  1. 创建 API 控制层
// api.controller.ts
import { Controller, Get, Post, Body, Delete, Param } from '@nestjs/common';

@Controller('api')
export class ApiController {
  @Get()
  findAll(): string {
    return 'Hello World!';
  }

  @Post()
  create(@Body() data: any): string {
    return 'Data received: ' + JSON.stringify(data);
  }

  @Delete(':id')
  delete(@Param('id') id: string): string {
    return 'Deleted item with id: ' + id;
  }
}
  1. 创建主模块并启用 Swagger
// app.module.ts
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { ApiController } from './api.controller';
import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger';

@Module({
  imports: [],
  controllers: [AppController, ApiController],
  providers: [AppService],
})
export class AppModule {
  configure(consumer: MiddlewareConsumer) {
    consumer
      .apply(SwaggerModule.createDocument(this.createSwaggerOptions()))
      .forRoutes('*');
  }

  createSwaggerOptions(): DocumentBuilder {
    return new DocumentBuilder()
      .setTitle('My NestJS API')
      .setDescription('API documentation for my NestJS application')
      .setVersion('1.0')
      .addTag('api')
      .build();
  }
}
  1. 运行项目
npm start

2. 引入 Swagger 生成接口文档

  1. 访问 Swagger UI
    打开浏览器并访问 http://localhost:3000/api-docs,即可看到 Swagger UI 界面。
  2. 浏览 API 文档
    点击左侧的 API 列表,可以查看每个 API 的详细信息,包括请求方法、参数、返回类型和示例。
  3. 测试 API
    在 Swagger UI 界面中,您可以直接测试 API。只需选择一个 API,填写请求参数,然后点击发送按钮,即可看到 API 的响应结果。

结论

通过引入 Swagger,NestJS 开发人员可以轻松地为其服务端应用程序生成详细的 API 文档。这不仅有助于客户端开发人员更好地理解和使用 API,也能够帮助 API 设计人员发现并修复潜在的问题,从而提高 API 的质量和可靠性。