Nesta aula nós usamos o método Fatal do pacote log para imprimir uma mensagem de erro e terminar a execução do servidor, caso haja erro na sua iniciação.
Se o seu navegador não mostrar uma resposta de JSON em um formato fácil de visualizar (com indentação, quebra de linha, etc), há extensões que podes instalar.
Certos navegadores já possuem a auto-formatação por padrão. Isso não acontece nessa aula por que o Content-Type da resposta de HTTP não está configurado para o formato JSON. Aprendemos a resolver esse problema na próxima aula.
Summary
Resumo da Aula de Go: API de JSON
Olá pessoal, estamos de volta com mais uma aula de Go, continuando o desenvolvimento da nossa API de JSON.
Rodando Servidores na Mesma Porta
-
Tentativa de Executar Múltiplos Servidores: O instrutor tentou rodar dois servidores Go na mesma porta, 1337, utilizando o comando
go run mei.go
em duas abas do terminal. O resultado foi que o segundo servidor não conseguiu iniciar e o programa fechou sem uma mensagem clara de erro. -
Tratamento de Erros: Para consertar isso, foi realizada uma modificação no código para logar erros usando o pacote
log
. O métodohttp.ListenAndServe()
irá retornar um erro ao tentar rodar o servidor em uma porta já em uso. O código agora inclui a lógica para verificar e logar esse erro. -
Resultado: Ao reexecutar o código, o erro agora é logado corretamente no terminal, informando que o endereço está em uso e o programa termina com um status de erro.
Visualização de Resposta JSON
-
Teste de Endpoint: O instrutor acessou o endpoint
localhost:1337/livros
e observou que a resposta JSON estava correta, mas a visualização não era amigável devido à falta de indentação. -
Extensões do Navegador: Para melhorar a visualização do JSON, ele sugeriu a instalação de uma extensão chamada JSON-Vil para Firefox, que formata automaticamente o JSON com indentação e quebras de linha. Uma extensão similar está disponível no Chrome.
-
Problema com o Content Type: Foi descoberto que a extensão não funcionava porque a resposta não tinha o cabeçalho
Content-Type
configurado comoapplication/json
. O cabeçalho atual estava definido comotext/plain
.
Próximos Passos
- O instrutor planeja corrigir o cabeçalho de resposta na próxima aula para que o JSON seja processado corretamente pelas extensões de formatação.
Até mais!