我有一个带有路由参数的简单nest.js控制器:
@Get(':id')
getHello(@Param('id', MyStringPipe) myString: MyString): string {
return myString.toString();
}
使用简单的string
将参数的数据类型从MyString
转换为pipe
:
export class MyStringPipe implements PipeTransform {
transform(value: string, metadata: ArgumentMetadata) {
return new MyString(value);
}
}
现在,当我想使用swagger-ui尝试路由时,它会拒绝字符串参数:
我如何将参数的数据类型设置为string
?
在这里尝试:
答案 0 :(得分:1)
您可以使用@ApiImplicitParam
装饰器定义参数的类型:
import { ApiImplicitParam } from '@nestjs/swagger';
@Get(':id')
@ApiImplicitParam({ name: 'id', type: String })
getHello(@Param('id', MyStringPipe) myString: MyString): string {
return myString.toString();
}