Um momento
Aula 41
Cursos / Como Criar uma API JSON em Golang - CRUD Simples
Como Modificar Registro usando MySQL no Golang - Aula de API

Nesta aula fazemos a reimplementação da função para modificar um livro, dessa vez usando o banco de dados MySQL.

Depois da operação de decodificação de JSON para a estrutura Livro, temos que fazer uma consulta de SQL para ver se o livro existe. Basta usar o comando SELECT e restringir o resultado com o WHERE.

Depois de usar o QueryRow, nós temos que mapear os dados do registro para uma estrutura Livro. Isso é possível através do método Scan:

registro.Scan(&livro.Id, &livro.Autor, &livro.Titulo)

Summary

Resumo da Aula: Modificando o Método para Atualizar um Livro com SQL

Na aula de hoje, iremos aprender a modificar o método que atualiza informações de um livro utilizando SQL.

Passos a Seguir

  1. Rota de Requisição:

    • Usaremos uma rota PUT na URL bar/livros/:id, onde :id é o identificador do livro a ser modificado.
  2. Extração do ID:

    • O ID do livro é extraído da rota, conforme o procedimento anterior.
    • Em caso de erro, um bad request é retornado.
  3. Processamento do Corpo da Requisição:

    • O corpo da requisição, que contém os dados do livro que o cliente deseja atualizar, é extraído.
    • Se houver erro na extração dos dados, é enviado um erro de resposta.
  4. Armazenamento da Informação Modificada:

    • As informações recebidas são armazenadas em uma estrutura apropriada.
    • Revisaremos o processo de unmarshal (desserialização) para garantir que os dados sejam lidos corretamente.
  5. Verificação da Existência do Livro:

    • Antes de tentar atualização, precisamos verificar se o livro realmente existe.
    • Executamos uma consulta usando query row para verificar a presença do livro.
  6. Consulta SQL:

    • A consulta SQL pode selecionar campos como ID, autor e título da tabela de livros, onde o ID corresponde ao extraído na rota.
    • Utilizamos query row para retornar apenas um registro.
  7. Escaneamento do Registro:

    • Um novo objeto livro é criado para armazenar os dados retornados do banco de dados, diferenciando-o do livro modificado.
    • Usamos scan para preencher o objeto livro com os dados do banco.
  8. Tratamento de Erros:

    • Se o escaneamento falhar (ou seja, se o livro não existir), um erro 404 é retornado e o código é interrompido para evitar a execução desnecessária.

Conclusão

Após verificar a existência do livro, podemos prosseguir com as atualizações se o registro for encontrado. Esse procedimento garante que a operação de atualização é feita apenas quando o livro existe, aumentando a robustez do nosso sistema.

Video Transcript

Olá pessoal, estamos de volta nesta aula vamos aprender a modificar o método modificar livro usando uma SQL. Então esse... Qual vai ser a rota? Vai ser no PUT, barra livros, barra o ID do livro, o ID. Então vamos lá para modificar o livro. Então extraímos da rota o ID do livro, tudo certo como antes. Se der erro lá tem um erro aqui, bad request. Aí depois extraímos o corpo, que o cliente manda os dados sobre o livro que ele quer atualizar e tal. Se tiver erro aqui manda o erro. Finalmente tem esse livro modificado, tipo livro que ele pega e pega aqueles valores enviados pelo cliente e amazena nessa estrutura aqui. Aí a gente vai ver se não tem problema nessa processo de unmartial, de serialização aí, sério. Serialização, vamos ver aqui. Depois disso ele vai procurar pelo livro para ver se existe mesmo, que o cliente manda a água, eu quero modificar esse livro, primeiro a gente tem que checar. Será que o livro existe? Talvez o cliente queira modificar um livro que não existe. Então a gente tem que procurar. Então vamos fazer a consulta aqui usando o query row para ver se o livro existe. Como é que faz então? Vamos a DB e ponto query o quê? Só checa por uma linha, query row. Então pode selecionar, select. Se quiser botar tudo ou não, só o ID, botar tudo mesmo. Não sei se vai precisar de todos, pelo menos o ID. Então vamos selecionar ID, autor título, livros, where, o quê? O ID é sinal interrogação, vírgula aqui e o ID aqui foi extraído, se lembra? Em cima. Extraído da rota. Query row retorna o registro. Aí vamos tentar escanear. Vamos criar aqui o var, livro, que estava lá no banco de dados para diferenciar do livro modificado que é o que o cliente quer os dados para atualizar. Aí vou dizer registro ponto scan para escanear no at do livro.id, a primeira leta maiúscula que tinha esquecido anteriormente. Comentire esse erro, livro ponto autor, livro ponto título. Aí é erro de scan, a CD é erro. If I scan, no forneo, the will. Então vai mandar o quê? O 404 que está aqui já embaixo. Vou acortar. E return para ele não poder executar mais código depois da linha 155. Não queremos executar se não houver nenhum livro para atualizar, porque não existe. Se existe, ele vai continuar aqui. Então vou remover essa parte aqui.
Nenhum comentário ainda (loading...)
Nenhum comentário ainda (loading...)
Gostou da aula? 😆👍
Apoie nosso trabalho com uma doação: