Nestjs / Swagger @ApiImplicitBody () не работает - PullRequest
0 голосов
/ 02 ноября 2019

У меня есть маршрут @Post(), который я пытаюсь протестировать в swagger, но запрос не отображает какие-либо типы данных в пользовательском интерфейсе. У меня есть другой маршрут @Post(), который работает, и в теле есть что-то, показанное чванством для тела, с @Body() user: CreatedUserDto, и все там.

Вот тот, который работает:

  @Post('register')
  @ApiResponse({
    status: 201,
    description: 'Successful Registration of User Account.',
    type: UserCreatedDto,
  })
  async registerUser(@Body() user: CreateUserDto): Promise<UserCreatedDto> {....}

, а вот тот, который не работает. Я тоже пробовал без @ApiImplicitBody() без везения.

@ApiImplicitBody({
    name: 'user',
    type: LoginUserDto,
  })
  @ApiResponse({
    status: 200,
    description: 'Successful Login!',
    type: LoginResponse,
  })
  @ApiResponse({ status: 400, description: 'Invalid login attempt' })
  @UseGuards(AuthGuard('local'))
  @Post('login')
  async login(
    @Request() req,
    @Body('user') user: LoginUserDto,
  ): Promise<LoginResponse> {
    try {
      return await this.authService.login(req.user);
    } catch (e) {
      throw e;
    }
  }

, а это LoginUserDto

export class LoginUserDto {
  @ApiModelProperty()
  readonly userName: string;
  @ApiModelProperty()
  readonly password: string;
}
...