РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗jsnsSpVrVn 124 of 201 menu
◀ ▶

Версия обработчика в 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.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить