Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 如果不单独使用,nestjs/swagger是否支持查询参数的文档?_Typescript_Nestjs_Nestjs Swagger - Fatal编程技术网

Typescript 如果不单独使用,nestjs/swagger是否支持查询参数的文档?

Typescript 如果不单独使用,nestjs/swagger是否支持查询参数的文档?,typescript,nestjs,nestjs-swagger,Typescript,Nestjs,Nestjs Swagger,我定义了一个路由来获取控制器中订单的分页结果 @Get() 异步查找( @查询(新的ValidationPipe({whitelist:true})) 查询:OrderQueryTo&PaginatedQueryTo, ) { const builder=this.orderRepository .createQueryBuilder(“订单”) .select('order.id') .take(query.take) .skip(query.skip) .andWhere('order.st

我定义了一个路由来获取控制器中订单的分页结果

@Get()
异步查找(
@查询(新的ValidationPipe({whitelist:true}))
查询:OrderQueryTo&PaginatedQueryTo,
) {
const builder=this.orderRepository
.createQueryBuilder(“订单”)
.select('order.id')
.take(query.take)
.skip(query.skip)
.andWhere('order.status!=“已删除”);
if(查询状态){
builder.andWhere('order.status=:status');
}
const[items,count]=wait builder.getManyAndCount();
返回{items,count};
}
但是,我希望有一些关于查询参数的文档(类型为
OrderQueryDto&PaginatedQueryDto
)。 我没有找到任何为nest swagger模块生成的api描述创建文档(和测试字段)的装饰器

我想我正在搜索类似于
@apimplicityquerystring({type:orderQueryTo&paginatedQueryTo})的内容

我知道有一种方法可以这样记录:

@Get()
@apimplicitquery({
名称:“take”,
必填项:false,
类型:数字,
})
@apimplicitquery({
名称:“跳过”,
必填项:false,
类型:数字,
})
//以及OrderQueryTo[…]上其余属性的所有其他装饰程序
异步查找(
@查询(新的ValidationPipe({whitelist:true}))
查询:OrderQueryTo&PaginatedQueryTo,
) {
const builder=this.orderRepository
.createQueryBuilder(“订单”)
.select('order.id')
.take(query.take)
.skip(query.skip)
.andWhere('order.status!=“已删除”);
if(查询状态){
builder.andWhere('order.status=:status');
}
const[items,count]=wait builder.getManyAndCount();
返回{items,count};
}
顺便说一句,DTO看起来像这样

从“类转换器”导入{Transform};
从“类验证器”导入{IsInt,IsOptional};
导出类PaginatedQueryDto{
@IsInt()
@等民族()
@转换(值=>value&&parseInt(值,10))
取?:数字;
@IsInt()
@等民族()
@转换(值=>value&&parseInt(值,10))
跳过?:数字;
}
从“类验证器”导入{IsInt,IsOptional,IsEnum};
从“类转换器”导入{Transform};
从“./order.entity”导入{OrderStatus};
导出类OrderQueryTo{
@IsInt()
@等民族()
@转换(值=>value&&parseInt(值,10))
经销商:编号;
@IsInt()
@等民族()
@转换(值=>value&&parseInt(值,10))
顾客:号码;
@IsEnum(订单状态)
@等民族()
状态:订单状态;
}
@ApiTags('port')
添加到控制器。下面是代码

控制器

import { Body, Controller, Get, Param, Post, Query } from '@nestjs/common';
import { PaginationQuery } from './pagination-query.dto';
import {
    ApiBearerAuth,
    ApiConsumes,
    ApiExtension,
    ApiHeader,
    ApiOperation,
    ApiQuery,
    ApiResponse,
    ApiSecurity,
    ApiTags
  } from '@nestjs/swagger'

@ApiTags('ports')

@Controller('port')
export class PortController {
    @Get()
    findAll(@Query() paginationQuery: PaginationQuery) {}
}

分页查询

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

export enum LettersEnum {
  A = 'A',
  B = 'B',
  C = 'C'
}

export class PaginationQuery {
  @ApiProperty({
    minimum: 0,
    maximum: 10000,
    title: 'Page',
    exclusiveMaximum: true,
    exclusiveMinimum: true,
    format: 'int32',
    default: 0
  })
  page: number;

  @ApiProperty({
    name: '_sortBy'
  })
  sortBy: string[];

  @ApiProperty()
  limit: number;

  @ApiProperty({
    enum: LettersEnum,
    enumName: 'LettersEnum'
  })
  enum: LettersEnum;

  @ApiProperty({
    enum: LettersEnum,
    enumName: 'LettersEnum',
    isArray: true
  })
  enumArr: LettersEnum;

  @ApiProperty()
  beforeDate: Date;

  @ApiProperty({
    type: 'object',
    additionalProperties: true
  })
  filter: Record<string, any>;

  static _OPENAPI_METADATA_FACTORY() {
    return {
      sortBy: { type: () => [String] }
    };
  }
}

从'@nestjs/swagger'导入{ApiProperty};
导出枚举LettersEnum{
A=‘A’,
B=‘B’,
C='C'
}
导出类分页查询{
@蜂房地产({
最低:0,
最高限额:10000,
标题:“第页”,
排他性最大值:对,
排他性极小:是的,
格式:“int32”,
默认值:0
})
页码:编号;
@蜂房地产({
姓名:“_sortBy”
})
排序:字符串[];
@ApiProperty()
限制:数量;
@蜂房地产({
枚举:LettersEnum,
枚举名称:“LettersEnum”
})
枚举:LettersEnum;
@蜂房地产({
枚举:LettersEnum,
enumName:'LettersEnum',
伊萨雷:是的
})
enumArr:LettersEnum;
@ApiProperty()
beforeDate:日期;
@蜂房地产({
类型:“对象”,
附加属性:true
})
过滤器:记录;
静态(OPENAPI)元数据(FACTORY){
返回{
排序方式:{type:()=>[String]}
};
}
}

你好,和你一样。你能解决这个问题吗?我需要帮助