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
-
Rota de Requisição:
- Usaremos uma rota
PUT
na URLbar/livros/:id
, onde:id
é o identificador do livro a ser modificado.
- Usaremos uma rota
-
Extração do ID:
- O ID do livro é extraído da rota, conforme o procedimento anterior.
- Em caso de erro, um
bad request
é retornado.
-
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.
-
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.
-
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.
-
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.
-
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 objetolivro
com os dados do banco.
- Um novo objeto
-
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.