#node.js #nestjs #dto #nestjs-swagger
#node.js #nestjs #dto #nestjs-развязность
Вопрос:
У меня есть один общий Dto для разбивки на страницы. Но в то время как некоторым API требуется больше параметров и разбивки на страницы. например, поиск, фильтр и т.д. Итак, мой метод стал бы таким, как показано ниже :
getAllCelebrities(
@AuthUser('_id') userId: string,
@Body() paginationnewDto: PaginationnewDto,
@Body() getCelebritiesDto: GetCelebritiesDto,
)
Наличие 2 параметров тела генерирует 2 блока в swagger. Как показано ниже:
Также, когда я консолирую оба параметра, он возвращает один и тот же объект.
Какова наилучшая практика для этого, чтобы мне не нужно было указывать параметры разбивки на страницы в моем getCelebritiesDto
? И я могу быть сухим.
Комментарии:
1. Я думаю, вы можете использовать простое наследование, почему бы и нет?
2. @MorKadosh Я имею это в виду в качестве последнего варианта, я просто смотрю, есть ли какая-либо другая лучшая практика.
3. ДА. Я знаю это чувство, когда вы думаете, что решение слишком очевидно. С другой стороны, мы говорим о простых классах, не более того. Так что, возможно, очевидное решение является лучшим
Ответ №1:
Отвечая на мой собственный вопрос, поскольку я не нашел никакой другой альтернативы. Согласно моей мысли и предложению @MorKadosh, вот простое решение. Я расширил PaginationnewDto
в GetCelebritiesDto
export class GetCelebritiesDto extends PaginationnewDto {}
Комментарии:
1. То же самое произошло и со мной. Я искал стандартный способ сделать это гнездо. Найден IntersectionType, но для этого нужно создать дополнительный класс, поэтому теперь используем простое наследование 🙂