Menu
CoddyTech

Parâmetros de rota

Parte da seção TypeScript e NestJS do Journey de Node.js da Coddy. Lição 2 de 17.

Um cliente muitas vezes precisa de um item, não da lista inteira. Um caminho pode conter um parâmetro: uma parte que muda de uma solicitação para outra.

@Get(':isbn')
findOne(@Param('isbn') isbn: string) {
    return this.books.find((book) => book.isbn === isbn);
}

:isbn corresponde a qualquer valor nessa posição do caminho, então GET /books/978 chega a esse método. @Param('isbn') passa esse valor para o método. Ele é sempre texto: /books/42 fornece a string '42', nunca o número 42.

Se você omitir o nome, @Param() fornece o objeto com todos os parâmetros, { isbn: '978' }, em vez do valor.

challenge icon

Desafio

Fácil
  • Adicione GET /tasks/:id: ele retorna a tarefa com esse id.
  • Envie GET /tasks/2, depois GET /tasks/99 e veja o que é retornado para um id sem tarefa.

Experimente você mesmo

import { Controller, Get } from '@nestjs/common';

interface Task {
    id: number;
    title: string;
    done: boolean;
}

@Controller('tasks')
export class TasksController {
    private tasks: Task[] = [
        { id: 1, title: 'Write the README', done: true },
        { id: 2, title: 'Fix the login bug', done: false },
        { id: 3, title: 'Plan the sprint', done: false },
    ];

    @Get()
    findAll(): Task[] {
        return this.tasks;
    }
}

Todas as lições de TypeScript e NestJS