在 NestJS 项目中,常常需要对 API 的参数进行验证和文档化。特别是在使用 UUID 作为参数时,确保参数格式的正确性以及在 Swagger 中正确展示这些参数是非常重要的。今天我们来探讨如何在 NestJS 中创建一个自定义装饰器来验证 UUID 格式,并动态生成 Swagger 文档。
背景介绍
假设我们有一个事件管理系统,使用 UUID 来标识每个事件和票务。为了确保参数格式的正确性,我们决定使用一个自定义的装饰器@IsUUIDParam来验证 UUID 格式。然而,Swagger 文档没有正确显示这个参数,这是一个常见的问题。下面我们将一步一步地解决这个问题。
步骤一:创建基础的 UUID 验证装饰器
首先,我们需要一个装饰器来验证传入的 UUID 参数。以下是基础的实现:
import{createParamDecorator,BadRequestException,ExecutionContext}from