Версия обработчика в Nest
Адрес страницы остаётся прежним, но тело ответа для разных клиентов уже разошлось. Дублировать путь вручную неудобно: в документации один URL, а на сервере два разных файла с похожими именами.
Nest позволяет повесить метку версии на отдельный обработчик. Несколько методов одного контроллера могут слушать один и тот же путь и HTTP глагол, если у каждого своя метка версии. В точке запуска включают версионирование, а различие задают на уровне методов класса.
Покажем на примере постов:
import { NestFactory } from '@nestjs/core';
import { VersioningType } from '@nestjs/common';
import { AppModule } from './app.module.js';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
app.enableVersioning({
type: VersioningType.URI,
});
await app.listen(3000);
}
bootstrap();
Два ответа на один адрес posts:
import { Controller, Get, Version } from '@nestjs/common';
@Controller('posts')
export class PostController {
@Get()
@Version('1')
getPostsV1(): string {
return 'All posts v1';
}
@Get()
@Version('2')
getPostsV2(): string {
return 'All posts v2';
}
}
Контроллер подключаем в корневом модуле:
import { Module } from '@nestjs/common';
import { PostController } from './post.controller.js';
@Module({
controllers: [PostController],
})
export class AppModule {}
Сделайте в WorkerController
два разных ответа на один адрес
workers для двух параллельных
линий API, включив версионирование
по адресу в точке запуска NodeJS.