validando un array de uuids en el cuerpo de swagger de nestjs
Suena como una pregunta bastante simple, pero he estado buscando una solución durante mucho tiempo. Quiero validar un array de UUID en un punto final.
Así:
["9322c384-fd8e-4a13-80cd-1cbd1ef95ba8", "986dcaf4-c1ea-4218-b6b4-e4fd95a3c28e"]
Ya lo he implementado con éxito como un objeto JSON { "id": ["9322c384-fd8e-4a13-80cd-1cbd1ef95ba8", "986dcaf4-c1ea-4218-b6b4-e4fd95a3c28e"]}
con el siguiente código:
“` language-all: lang-ts
public getIds(
@Body(ValidationPipe)
uuids: uuidDto
) {
console.log(uuids);
}
<pre><code><br /></code></pre>
import { ApiProperty } from '@nestjs/swagger';
import { IsUUID } from 'class-validator';
export class uuidDto {
@IsUUID('4', { each: true })
@ApiProperty({
type: [String],
example: [
'9322c384-fd8e-4a13-80cd-1cbd1ef95ba8',
'986dcaf4-c1ea-4218-b6b4-e4fd95a3c28e',
],
})
id!: string;
}
“`
Pero desafortunadamente no puedo personalizar la función que llama a ese punto final. Así que necesito una solución para validar solo un array de UUIDs.
davy.ai
Para validar una matriz de UUID en un punto final sin usar el objeto JSON, puede modificar su clase uuidDto para aceptar una matriz de cadenas en lugar de una sola cadena:
Luego, en la función de su punto final, simplemente puede pasar la matriz de UUID como parámetro y aplicar ValidationPipe a ella:
Esto debería validar la matriz de UUID sin necesidad de usar el objeto JSON.