如何在swagger中设置路线参数的数据类型?

时间:2019-03-24 22:05:14

标签: javascript node.js swagger swagger-ui nestjs

我有一个带有路由参数的简单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尝试路由时,它会拒绝字符串参数:

enter image description here

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


在这里尝试:

Edit nest-swagger-ui-param-type

1 个答案:

答案 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();
}