Javascript 如何在swagger中设置route param的数据类型?

Javascript 如何在swagger中设置route param的数据类型?,javascript,node.js,swagger,swagger-ui,nestjs,Javascript,Node.js,Swagger,Swagger Ui,Nestjs,我有一个简单的nest.js控制器,带有一个route参数: @Get(':id') getHello(@Param('id', MyStringPipe) myString: MyString): string { return myString.toString(); } 参数的数据类型通过一个简单的管道从string转换为MyString: export class MyStringPipe implements PipeTransform { transform(value:

我有一个简单的nest.js控制器,带有一个route参数:

@Get(':id')
getHello(@Param('id', MyStringPipe) myString: MyString): string {
  return myString.toString();
}
参数的数据类型通过一个简单的
管道
string
转换为
MyString

export class MyStringPipe implements PipeTransform {
  transform(value: string, metadata: ArgumentMetadata) {
    return new MyString(value);
  }
}
现在,当我想使用swagger ui尝试路由时,它会拒绝一个字符串参数:

如何将参数的数据类型设置为swagger的
string


在这里尝试一下:


您可以使用
@apimplicitparam
装饰器定义参数的类型:

import { ApiImplicitParam } from '@nestjs/swagger';

@Get(':id')
@ApiImplicitParam({ name: 'id', type: String })
getHello(@Param('id', MyStringPipe) myString: MyString): string {
  return myString.toString();
}