• Stars
    star
    34
  • Rank 766,985 (Top 16 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created over 6 years ago
  • Updated almost 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Nest api version (global prefix) guard

Build Status GitHub license

Nest api version (global prefix) guard

@nestjsx/api-verion has been designed to quickly help you with the access logic if you're using global prefix in your application and want to restrict an access to different API endpoints with different API versions. For now it works with Express and Fastify adapters.

Install

npm i @nestjsx/api-version --save

Usage

1. Enable global prefix in your bootstrap file

import { NestFactory } from '@nestjs/core';
import { ApplicationModule } from './app.module';

async function bootstrap() {
  const app = await NestFactory.create(ApplicationModule);
  app.setGlobalPrefix('v1'); // <-- here
  await app.listen(3000);
}
bootstrap();

2. Connect ApiVersionGuard in app module

import { ApiVersionGuard } from '@nestjsx/api-version';
import { Module } from '@nestjs/common';
import { APP_GUARD } from '@nestjs/core';

@Module({
  providers: [
    {
      provide: APP_GUARD,
      useClass: ApiVersionGuard,
    },
  ],
})
export class ApplicationModule {}

3. Use ApiVersion decorator in your controller

import { ApiVersion } from '@nestjsx/api-version';
import { Controller, Get } from '@nestjs/common';

@Controller('cats')
export class CatsController {
  @Get()
  @ApiVersion()
  findAllV1() {
    return 'This action will work in all versions';
  }

  @Get()
  @ApiVersion('v1')
  findAllV1() {
    return 'This action will work in v1 version';
  }

  @Get()
  @ApiVersion('v2')
  findAllNext() {
    return 'This action will work in v2 version only';
  }
}

Tests

npm run test:e2e

License

MIT