swagger
Swagger 是一種用於設計、建立、記錄和使用 REST API 的工具,可以幫助我們視覺化和測試我們的 endpoints。在 NestJS 中使用 Swagger 非常簡單且直觀。
以下是在 NestJS 中使用 Swagger 的基本步驟:
-
安裝必要的套件:
使用 npm 或 yarn 安裝
@nestjs/swagger和swagger-ui-express套件。npm install --save @nestjs/swagger swagger-ui-express或
yarn add @nestjs/swagger swagger-ui-express -
引入 Swagger 模組:
在你的應用程式的主模組(通常是
app.module.ts)中引入 Swagger 模組並設定。import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger';
//...
const config = new DocumentBuilder()
.setTitle('My API title')
.setDescription('My API description')
.setVersion('1.0')
.build();
const document = SwaggerModule.createDocument(app, config);
SwaggerModule.setup('api', app, document);
//...這裡,
setTitle、setDescription和setVersion分別設定了 Swagger 文檔的標題、描述和版本。createDocument方法則是建立文檔,而setup方法則是設置 Swagger UI 的路徑(在這裡是/api)。 -
使用裝飾器添加 API 資訊:
在你的控制器和路由處理函數中使用 Swagger 提供的裝飾器來添加更多關於你的 API 的資訊。
import { ApiTags, ApiOperation, ApiResponse } from '@nestjs/swagger';
@ApiTags('cats')
@Controller('cats')
export class CatsController {
@Post()
@ApiOperation({ summary: 'Create cat' })
@ApiResponse({ status: 201, description: 'The cat has been successfully created.'})
@ApiResponse({ status: 403, description: 'Forbidden.'})
async create(@Body() createCatDto: CreateCatDto) {
//...
}
//...
}在上面的例子中,我們使用了
ApiTags來為我們的控制器添加標籤,ApiOperation來添加操作的簡短描述,以及ApiResponse來描述可能的回應。