Um momento
Aula 36
Cursos / Como Criar uma API JSON em Golang - CRUD Simples
Corrigindo o Problema do db Sendo Nil e Testando Erro de Query (Aula de Golang e MySQL)

Nesta aula consertamos o problema do valor da variável db ser nil.

Testamos a requisição no Postman na espera de uma resposta falha com Internal Server Error.

Summary

Resumo do Transcript

Olá pessoal! Estamos de volta para resolver um problema relacionado à variável DB, que está indefinida. Vamos revisar a definição dessa variável.

Problema Identificado

O problema se originou porque a variável DB estava sendo criada como local, usando :=, o que impede que ela modifique a variável DB que já foi declarada anteriormente. Para corrigir isso, devemos usar o sinal de igual (=) para definir a variável, garantindo que a referência correta da variável global seja utilizada.

Correções Realizadas

  • Declarar DB corretamente para evitar a criação de uma nova variável local.
  • Declarei uma nova variável error como local, que desaparecerá após a função, enquanto a variável DB permanece a mesma.

Testes Realizados

  • Após as correções, realicei um teste com o Postman e consegui receber uma resposta sem problemas, o que indica que a conexão está funcionando.

Teste de Erro

  • Para verificar se o sistema lida bem com erros, desativei o servidor MySQL enquanto o servidor Go estava ativo. Ao tentar fazer uma requisição, recebemos um erro 500, que foi logado corretamente.
  • Após reiniciar o servidor MySQL, as requisições voltaram a funcionar, retornando o status 200 OK.

Vamos dar uma pausa por aqui, e na próxima aula, continuaremos com a recuperação de registros do banco de dados. Até mais!

Video Transcript

Olá pessoal, estamos de volta, vamos continuar aqui, vamos resolver esse problema do DB está indefinido né Neil? Lá nos insta, livros, cadê aqui? Ah não, não é isso não. Então, DB aqui está a declarar aqui lá fora, então deve ter acesso aqui, mas ele diz que é Neil. Então, quem é que se tocou? O que é? Na besteira que eu fiz, então vai lá para a definição do DB, olha só, ele está criando DB aqui, os dois pontos igual, mas essa variável aqui é local. Então, na verdade, não está modificando lá o DB lá de cima do topo, por causa dos dois pontos aqui igual. Então, para corrigir isso, fazer o seguinte, define primeiro de tudo, a gente vai ter que usar o igual, porque quando você usa igual, já espero que tenha declarada a variável, o DB já está declarado lá em cima, mas o erro à abertura não está, então preciso declarar aqui em local, vai ir à abertura do tipo error. Dessa maneira eu posso usar o igual, o igual não vai criar a nova variável aqui local, no caso do DB, que o DB já estava declarado, só falta definir, mas o erro à abertura vai ser local e vai desaparecer depois de sair da função. Então, vamos ver, tem mais problema aqui, os pontos terminaram lá de novo, aqui, certo, postman, send, recebeu a resposta, esse é um bom sinal, que não teve problema, note que deu log aqui e realmente tem alguma coisa, tá certo? Agora vamos ver, continuar aqui, vem, uma coisa que eu queria confirmar, é se realmente ele vai lidar com aquele erro, para poder fazer isso, estou pensando aqui, vou matar o servidor na hora que depois de conectar e tal, vou matar o servidor e fazer essa exigição, então vou aqui, o servidor está rodando, desculpa, matar o servidor de MySQL, não o servidor de Go, tá? Então, o servidor de Go está rodando, vou bater lá no lista de livros, mas antes de bater no lista de livros, vou desligar o servidor de MySQL aqui, então fiz o comando aqui e desliguei o servidor, pronto, servidor está desligado, vou lá postman, vou fazer o pedido, tá? 500 turns error, então dá o log aqui, se lembra daquilo log que a gente fez, ele deu log para a gente além e tem que ir a mensagem, listar a livros de dois pontos, passo e o error lá, vai dizer conectar, conexão foi rejeitada, tá? Porque o servidor está desligado, agora se eu reiniciar o servidor, note que o servidor de Go fica rodando ainda, então eu reiniciei meu servidor de MySQL e vou bater no postman de novo, agora funcionar sem problemas 200 OK, tá? Tá isso, testamos o erro, tá? Agora vamos dar pausa e te vejo na próxima aula, onde a gente vai continuar realmente pegar os registros do banco de dados, até mais!
Nenhum comentário ainda (loading...)
Nenhum comentário ainda (loading...)
Gostou da aula? 😆👍
Apoie nosso trabalho com uma doação: