Aula 03
Como Criar uma Rota para Listar Livros - Aprenda Golang CRUD
Nesta aula nós aprendemos a definir uma rota para obter todos os livros da coleção.
Nós definimos uma estrutura para representar um livro.
Como ainda não temos um banco de dados, nós criamos uma fatia do tipo Livro e definimos dados de amostra.
Aprendemos a criar, através do pacote json, um codificador de JSON que grava os dados para a resposta de HTTP. Há um método para codificar uma estrutura de Golang para convertê-la ao formato JSON.
Summary
Resumo do Transcript
Olá pessoal! Neste vídeo, vamos criar uma estrutura (struct
) para representar um livro e desenvolver uma rota para listar livros em um servidor.
Criando a Estrutura do Livro
-
Definição do
struct
:- Criamos um novo tipo chamado
livro
com os campos:ID
: tipo definido como desejado (e.g.,int
,string
).Título
: tipostring
compost trim
.Autor
: tipostring
comtrim
.
- Criamos um novo tipo chamado
-
Lista de Livros:
- Definimos uma variável chamada
livros
que armazenará nossos livros em memória, em vez de usar um banco de dados. - Adicionamos exemplos de livros:
- ID 1: "O Livro" - Autor: "Zadia Alenca"
- ID 2: "Outro Livro" - Autor: "Viriato Correia"
- ID 3: "Dom Casmurro" - Autor: "Machado de Assis"
- Definimos uma variável chamada
Criando a Rota para Listar Livros
-
Configuração da Rota:
- Criamos uma nova rota (
/livros
) que irá listar todos os livros. - Definimos uma função chamada
listarLivros
, que usa dois argumentos:response writer
erequest
.
- Criamos uma nova rota (
-
Codificação para JSON:
- Importamos o pacote
encoding/json
. - Usamos um encoder para transformar a lista de livros em uma string JSON que será enviada ao cliente.
- O encoder é criado com
json.NewEncoder(w)
e usamosencoder.Encode(livros)
para enviar os livros formatados em JSON como resposta.
- Importamos o pacote
-
Testando a Rota:
- Após compilar e iniciar o servidor, acessamos
localhost/livros
. - A resposta é exibida em formato JSON.
- Após compilar e iniciar o servidor, acessamos
Conclusão
- Resumimos que:
- Criamos um
struct
chamadolivro
com ID, título e autor. - Implementamos uma lista de livros em memória.
- Adicionamos uma rota para listar os livros e enviá-los como JSON ao cliente.
- Criamos um
Até a próxima aula!
Video Transcript
Olá pessoal, estamos de volta, vamos criar um struct para poder representar o livro.
Então vamos aqui em cima, depois de import, eu vou criar um novo tipo, type, livro, que
vai ser um struct.
Abre chaves.
Então vamos ter o ID.
Vamos ter o título do livro e o autor.
Então o ID você pode escolher qualquer tipo, um point, o título, o post trim e o autor
trim, tá?
Então nós temos struct para reversar o livro.
Agora vamos aqui criar uma rota.
Na verdade vamos criar uma lista de livros e exemplos, como esse curso a gente não vai
começar com banco de dados, vamos supor que os bancos de dados, os records estão dentro
de uma variável chamada livros, tá?
Então vamos criar essa variável aqui.
Vamos chamar var, livros.
Ora o livro vai ser o tipo, pedaço de livro, tá?
E eu vou fazer o patio, o pedaço de livro aqui.
E vamos criar exemplos de livro, fazer uns três, tá?
Então fazer um livro aqui e dê um título.
Vamos ver aqui o var ali.
Vê outro aqui, autor.
Zadia, alenca.
Só para ver se não deu erro aqui, eu vou dar o compilador.
Deu erro na linha 18, porque eu escrevi a vírgula.
Sem erro.
Tá, então vamos escrever os outros, só fazer outros livros da mesma maneira, eu vou só
duplicar essa parte aqui.
Id2, outro livro, Azusa, Autor, Viriato, Correia.
Você pode pôr o livro que você quiser aí, só pôr uns exemplos.
E eu vou criar mais um, id3, Dom, Casmurro, Machado de Assis.
Então vamos imaginar que esses livros estão de bancos de idade em um local e a gente pode
só se referir a essa variável de livros aqui para poder obter cada livro, essa lista de livros,
como a gente não tem bancos de idade ainda, vamos supor que está aqui, tá?
Nossos dados aqui falsos.
Temos a struct para representar cada livro.
Tá bom?
Agora com isso vamos aqui embaixo, vamos criar aqui uma nova rota, no função configurar
rotas, lembra?
É chamado pelos revidores, vou adicionar HTTP, render o funk e para essa rota vai ser no
barra Livros, para listar todos os livros, essa rota vai ser a rota para a lista de todos
os livros e vamos criar uma função para pegar todos os livros, então vou chamar
a lista Livros.
Vamos fazer a função aqui em cima, funk listar livros, como sempre, dois argumentos,
essa é uma função de render, de dar, primeiro vai ser o wp, response writer, segundo
vai ser o r, estrela, hp, request.
Então vamos testar aqui o que fazer, então nós vamos listar todos os livros basicamente
para fazer o que?
Vamos pegar essa variável Livros e mandar lá para o cliente, vamos fazer isso aqui,
a gente pode se referir ao Livros, bem legal, mas como é que me manda isso?
Então a gente vai ter que transformar essa lista de structs em um string em formato
JSON.
A gente vai precisar usar o pacote encoding barra JSON, então vamos lá em cima no import,
vou adicionar encoding barra JSON.
Agora aqui no listar livros a gente vai fazer o seguinte, a gente primeiro tem que fazer
o encoder, antes da gente continuar deixa eu te mostrar como pegar referências de todas
essas bibliotecas, eu vou aqui no navegador, vamos lá no golang, no site tá, golang-vr
aqui, então na documentação você vai aqui nos pacotes cadê?
Linguagem está alando, parece que não tem, começando, parece que o site português
não tem os pacotes, deixa eu ver o site inglês, golang.org packages, não sei porque
o site português não tem pacotes lá, então golang.org, pacotes packages, tá aqui os
pacotes vamos ver o encoder em port de JSON, tá aqui o encoder barra JSON, então isso
mostra as moções disponíveis, então você vê que, fã que fã que fã que não sei o
que, a gente vai precisar do encoder tá, para codificar o nosso objeto, o nosso struct
em uma string format JSON, então vamos clicar aqui, então encoder não sei o que, então
tem as funções, métodos, new encoder é isso que a gente vai usar, new encoder retorna
o novo codificador que pode escrever pro W, é isso que a gente quer, então a gente
vai chamar o pacotes JSON, ponto new encoder, passa com um argumento W, e vai receber esse
ponteiro pro encoder, e a gente pode usar isso para poder chamar lá, mandar resposta, chamar
essa função aqui encode, senão a estrutura encoder tem como método encode, porque tem
a hora da que isso aqui, e esse encode vai mandar escreve JSON pro stream, seguido de um
caractere nova ali, não sei o que, então vamos lá, você vai falar JSON, ponto new encoder,
passa o W com o argumento, legal, isso vai retornar uma variável que vai ser o encoder,
vou chamar encoder dois pontos igual pra variável, legal, agora com encoder vou fazer o seguinte,
encoder, ponto encode, o que a gente quer encoder, os livros, vamos ver o que dá, voltando aqui
para terminar o servidor, control C, compila de novo, vai lá no navegador, localhost, agora vou dizer
barra livros, e essa é a resposta, tá, uma forma de JSON, a stream, sem nenhum espaço em
branco, por isso que é meio difícil de ler, mas se o navegador tiver uma extensão para
melhorar a exibição do JSON, normalmente JSON view, Chrome, essas coisas, você pode usar
para visualizar melhor, senão acho que tem o ID, título, autor, tudo daquilo que a gente tinha
escrito lá na nossa lista, fatias de estrutura, tá, em alguns exemplos online você também
pode ver que ele faz tudo isso aqui em uma mesma linha, tanto faz, mas escreve e separar
para você entender o que está acontecendo, então você pode também fazer isso aqui, sem precisar
criar variável, opa, eu prefiro essa maneira para visualizar melhor como a gente está começando,
que acontece, né, para finalizar vamos revisar o que a gente fez, então nós criamos
um struct chamado livro, para poder ter o ID, título e autor, para responder a tal esse livro, como a gente
não tem banco de dados, vamos fazer uma espécie de banco de dados na memória, na hora de rodar o
programa runtime, criamos essa lista, né, fatias, fati livro, livro, livro literal aqui, struct literal,
uns exemplos aqui, e lá na configurar rotas adicionamos uma nova, nova render, né, nova rota para o
barra livros, e vai bater lá no lista de livros que a gente faz o seguinte para poder enviar resposta
ao servidor, primeiro nós criamos um encoder codificador de JSON, JSON vem do pacote encoder
encoder em barra de JSON, é só chamar o JSON a ponto new encoder com o W como argumento, isso
vai gerar um encoder, esse encoder nós temos o método encoder, a gente passa aquilo que a gente quer,
que seja codificado no formato JSON, e ele vai automaticamente enviar como resposta para o cliente,
é um preço aulas só, e até a próxima.
Nenhum comentário ainda (loading...)
Nenhum comentário ainda (loading...)
Gostou da aula? 😆👍
Apoie nosso trabalho com uma doação: