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

问题描述 投票:1回答:1

我有一个简单的nest.js控制器和一个路由参数:

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

使用简单的string将param的数据类型从MyString转换为pipe

export class MyStringPipe implements PipeTransform {
  transform(value: string, metadata: ArgumentMetadata) {
    return new MyString(value);
  }
}

现在,当我想用​​swagger-ui尝试路由时,它会拒绝一个字符串参数:

enter image description here

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


在这里尝试一下:

Edit nest-swagger-ui-param-type

javascript node.js swagger swagger-ui nestjs
1个回答
1
投票

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

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

@Get(':id')
@ApiImplicitParam({ name: 'id', type: String })
getHello(@Param('id', MyStringPipe) myString: MyString): string {
  return myString.toString();
}
© www.soinside.com 2019 - 2024. All rights reserved.