小编Dai*_*ess的帖子

How can I display multiple ResponseDTOs' schemas in Swagger/NestJS?

I have this route which can return one of these two different DTOs:


  @Get()
  @ApiQuery({ name: 'legacy', description: "'Y' to get houses legacy" })
  async findAllHouses(
    @Query('legacy') legacy: string,
  ): Promise<HousesDto[] | HousesLegacyDto[]> {
  ...
  }
Run Code Online (Sandbox Code Playgroud)

I want to display both of these ResponseDTOs in swagger. I've tried this decorator:

  @ApiOkResponse({
    schema: { oneOf: refs(HousesDto, HousesLegacyDto) },
  })
// OR
  @ApiOkResponse({
    schema: {
      oneOf: [
        { $ref: getSchemaPath(HousesDto) },
        { $ref: getSchemaPath(HousesLegacyDto) },
      ],
    },
  })
Run Code Online (Sandbox Code Playgroud)

with @ApiExtraModels() on …

swagger swagger-ui nestjs nestjs-swagger

7
推荐指数
2
解决办法
8753
查看次数

标签 统计

nestjs ×1

nestjs-swagger ×1

swagger ×1

swagger-ui ×1