Я пытаюсь создать чванливую документацию для API загрузки файлов с помощью Nest JS.
Это то, что у меня сейчас есть в моем контроллере:
@ApiTags('files')
@Controller('files')
export class FilesController {
@ApiConsumes('multipart/form-data')
@ApiCreatedResponse({description: "This api creates a file in the system"})
@Post('upload')
@UseInterceptors(FileInterceptor('file'))
uploadFile(@UploadedFile() file, @Body() fileInfo: UploadFileDto) {
console.log(file);
console.log(fileInfo);
}
}
и в моем DTO file:
import { IsString } from 'class-validator'
import { ApiProperty } from '@nestjs/swagger'
export class UploadFileDto {
@IsString()
communityName: string
@IsString()
type: string
@ApiProperty({type:"file"})
file: any;
}
Таким образом, он показывает все в чванстве (и работает) правильно. Однако, как вы можете видеть, в моем классе DTO и функциональной переменной есть избыточная "файловая" переменная. Если я удалю атрибут «файл» из DTO, пользовательский интерфейс swagger не распознает этот параметр как входной файл. Если я удалю его из параметра функции, он появится в пользовательском интерфейсе swagger, но контроллер не получит загруженный файл. Есть ли способ исправить это?
Спасибо.