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

Версия в заголовке в Nest

Иногда менять путь нельзя: прокси или общий шлюз уже зафиксировали адрес, а различать линии ответа всё равно нужно. Тогда версию удобнее передавать отдельным полем запроса, не трогая строку URI.

Nest поддерживает версионирование по заголовку. В точке запуска указывают тип HEADER и имя заголовка, из которого фреймворк читает значение версии. Имя задают так же, как в официальной документации Nest для этого режима. Клиент присылает нужное значение в этом заголовке, а обработчик с меткой версии получает запрос только при совпадении.

Покажем на примере постов:

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.HEADER, header: 'Custom-Header', }); await app.listen(3000); } bootstrap();

Контроллер списка с меткой первой линии и путём posts:

import { Controller, Get, Version } from '@nestjs/common'; @Controller('posts') export class PostController { @Get() @Version('1') getPosts(): string { return 'All posts v1'; } }

Контроллер подключаем в корневом модуле:

import { Module } from '@nestjs/common'; import { PostController } from './post.controller.js'; @Module({ controllers: [PostController], }) export class AppModule {}

Настройте встроенное версионирование по заголовку в точке запуска NodeJS и верните список работников из WorkerController по пути workers, чтобы клиент передавал линию API через служебный заголовок запроса.

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