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

Версия в адресе в Nest

Клиенту проще всего различать линии API по разным адресам: в строке запроса видно, к какому варианту он обратился. Если версию не вынести в путь, приходится дублировать префиксы вручную и легко перепутать старый и новый маршрут.

Nest умеет читать версию из URI. В точке запуска включают версионирование по адресу через перечисление VersioningType с вариантом URI. По умолчанию перед номером в пути ставится короткий префикс, и клиент обращается к адресу вида сегмент версии плюс путь страницы. Обработчик помечают версией, и фреймворк сопоставляет запрос только с подходящей меткой.

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

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 } from '@nestjs/common'; @Controller({ path: 'posts', version: '1', }) export class PostController { @Get() 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 сегментом версии в URI.

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