No internet connection
  1. Home
  2. Dúvidas Gerais

Rotas Dinâmicas - Endpoints com o ID específico

Por Luiza Ferreira @luizaferreirafonseca
    2023-12-22 20:51:01.230Z

    Oi, pessoal! Estava estudando sobre Rotas e os Endpoints que utilizamos na API e descobri um pouco melhor como que nós podemos utilizar ROTAS DINÂMICAS durante a consumação das nossas API's.

    O que são ROTAS DINÂMICAS?
    Elas permitem a criação de páginas de detalhes específicos mais individuais. Por exemplo, podemos ter uma página com muitos alunos e queremos visualizar uma rota para cada aluno, ou até mesmo, se temos uma página com vários produtos, clicamos em um produto e vai automaticamente para página apenas deste produto.

    -> Nós usamos a identificação dos nossos recursos através de identificadores (id's) na URL.

    Como utilizar as rotas dinâmicas com as nossas API's?

    1. Em nossa API, vamos ter as rotas especificadas e o endpoint da rota. Nesse exemplo, há uma rota para buscar detalhes de um aluno com base em seu ID.

    Exemplo do back-end pelo node.js:

    app.get('/alunos', (req, res) => {
    res.status(200).send(alunos)
    })

    app.get('/alunos/:id', (req, res) => {
    const id = req.params.id;
    const aluno = alunos.find( e => e.id === Number(id))

    verifyIfIdIsValid(res, id)
    
    if(!!aluno ){
        res.status(200).send(aluno)
    } else {
        res.status(404).json({message: "O aluno não existe na base de dados"})
    }
    

    })

    Podemos perceber que manipulamos parâmetros dinâmicos, buscamos na lista de alunos, verificamos a validade e fornecemos respostas.

    2.Em nosso front-end, no Angular mais especificamente, iremos criar esses caminhos para fazer a rota dinâmica funcionar. Primeiramente, vamos direto ao app.routes:

    const routes: Routes = [
    { path: 'alunos/:id', component: AlunosComponent },
    ];

    Nesse caso, estamos criando a rota em nosso app.routes.

    3.Em seguida, vamos ao nosso AlunosComponent e usamos o serviço ActivatedRoute para acessar e pegar o valor do parâmetro:

    constructor(private route: ActivatedRoute) {
    this.route.params.subscribe(params => {
    const alunoId = params['id'];
    });
    }

    Ao chamar o 'subscribe', o componente se 'inscreve' nos parâmetros da rota e executa o código sempre que os parâmetros mudarem.

    4.Após essa configuração, podemos chamar os nossos serviços no Angular e transformá-los também em nossos Componentes, para que, nessa rota dinâmica, apareça apenas as informações daquele aluno com o ID especificado.

    Na prática é: Quando vemos uma lista de alunos e clicamos em um aluno específico, ele irá ser direcionado para uma outra rota apenas com as informações dele, diretamente consumadas pela API. Essa minha explicação foi baseada no consumo das API's,

    Qualquer coisa, podemos trocar ideia!
    Espero que seja útil para nossos estudos.

    =)

    • 5 respostas
    1. MARCUS VOGADO @MarcusVogado
        2023-12-23 00:49:04.003Z

        Muito top, esse tópico é muito importante, principalmente para quando queremos manipular e transferir dados entre componentes.

        1. Bem interessante Luiza, depois de lê com calma o Post pude entender um pouco melhor a funcionalidade. Obrigada pela dica.

          1. T
            Tatiane Tinoco @tatianetinoco
              2023-12-23 02:32:46.557Z

              Parabéns pelo conteúdo. Muito bem detalhado e organizado.

              1. muito bom luiza , ajuda muito esses resumos

                1. Nadielly Medeiros @Nadielly
                    2024-01-04 12:44:59.144Z

                    Obrigada Luiza, me ajudou a entender um pouco mais sobre as rotas :D