返回
NestJs 搭建服务端应用 - 引入Swagger生成接口文档
前端
2023-12-18 15:11:23
前言
在开发后端服务时,设计良好的 RESTful API 至关重要,不仅能够提供清晰的接口,还能简化客户端与服务器之间的交互。本文将介绍如何使用 NestJS 搭建服务端应用程序并引入 Swagger 为 RESTful API 生成接口文档,帮助开发人员轻松设计、测试和维护 API。
1. 搭建 NestJS 服务端应用程序
- 安装 NestJS CLI 工具
npm install -g @nestjs/cli
- 创建新项目
nest new my-nest-app
- 安装必要的依赖包
npm install class-transformer class-validator reflect-metadata swagger-ui-express @nestjs/swagger @nestjs/common
- 创建 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;
}
}
- 创建主模块并启用 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();
}
}
- 运行项目
npm start
2. 引入 Swagger 生成接口文档
- 访问 Swagger UI
打开浏览器并访问http://localhost:3000/api-docs
,即可看到 Swagger UI 界面。 - 浏览 API 文档
点击左侧的 API 列表,可以查看每个 API 的详细信息,包括请求方法、参数、返回类型和示例。 - 测试 API
在 Swagger UI 界面中,您可以直接测试 API。只需选择一个 API,填写请求参数,然后点击发送按钮,即可看到 API 的响应结果。
结论
通过引入 Swagger,NestJS 开发人员可以轻松地为其服务端应用程序生成详细的 API 文档。这不仅有助于客户端开发人员更好地理解和使用 API,也能够帮助 API 设计人员发现并修复潜在的问题,从而提高 API 的质量和可靠性。