我使用的是Nest.js,并启用了Swagger和Swagger CLI。我在控制器中有一个端点,它有一个可选的布尔查询参数:includeAll
,默认为false。端点看起来像:
@Get()
findAll(
@Query('includeArtifacts', ParseOptionalBool)
includeArtifacts = false,
) {
return this.toursService.findAll({ includeArtifacts });
}
字符串
我使用了一个类似于文档中描述的可注入管道变换来解析可选布尔值,如下所示:
export const toBoolean = (value?: string): boolean => {
value = value?.toLowerCase();
return value === 'true' || value === '1';
};
@Injectable()
export class ParseOptionalBool implements PipeTransform {
transform(value?: any, metadata?: ArgumentMetadata): any {
return toBoolean(value);
}
}
型
一切顺利;但是,正如下面所示,当我在Swagger中查看端点时,没有提到我的includeArtifacts
端点。
x1c 0d1x的数据
1条答案
按热度按时间pbwdgjma1#
你可以像下面这样创建一个简单的类:
字符串
你的控制器会像这样:
型
但这将返回字符串类型的对象,而不是布尔类型,如果你想解析布尔类型,你应该像下面这样做:
型