Typescript

Criando uma API RESTful Profissional

Criação de uma API RESTful com TypeScript e Nest.js

Tópico 1: Configuração Inicial

1.1 Instalação e Configuração

npm install -g @nestjs/cli
nest new my-nest-api

Tópico 3: Controladores e Rotas

3.1 Criando Controladores

nest generate controller app

3.2 Definindo Rotas

// app.controller.ts
import { Controller, Get } from '@nestjs/common';

@Controller('app')
export class AppController {
  @Get()
  getAppInfo() {
    return 'Bem-vindo à sua API Nest.js com TypeScript!';
  }
}

Tópico 7: Serviços e Lógica de Negócios

7.1 Criando Serviços

// app.service.ts
import { Injectable } from '@nestjs/common';

@Injectable()
export class AppService {
  getAppInfo(): string {
    return 'Bem-vindo à sua API Nest.js com TypeScript!';
  }
}

7.2 Conexão a Bancos de Dados

// app.service.ts
import { Repository } from 'typeorm';

@Injectable()
export class AppService {
  constructor(
    @InjectRepository(User)
    private readonly userRepository: Repository<User>,
  ) {}

  async findUser(id: number): Promise<User> {
    return this.userRepository.findOne(id);
  }
}

Tópico 11: Documentação da API

11.1 Gerando Documentação

// main.ts
import { NestFactory } from '@nestjs/core';
import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger';

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  const options = new DocumentBuilder()
    .setTitle('Minha API Nest.js')
    .setDescription('API RESTful com Swagger')
    .setVersion('1.0')
    .addTag('api')
    .build();
  const document = SwaggerModule.createDocument(app, options);
  SwaggerModule.setup('api', app, document);
  await app.listen(3000);
}
bootstrap();