Um momento
Aula 05
Cursos / Como Criar uma API JSON em Golang - CRUD Simples
Como Configurar o Header Content-Type da Resposta JSON

Nesta aula aprendemos a definir o header de HTTP para a resposta ser interpretada no formato JSON pelo cliente.

O parâmetro w, que é do tipo http.ResponseWriter, tem um método que podemos chamar para obter os headers e por fim configurá-los.

Aprendemos também como modificar uma estrutura para renomear suas propriedades quando os dados deste forem convertidos para o formato JSON.

Summary

# Resumo do Transcript

O apresentador discute como mudar o tipo de conteúdo da resposta em uma aplicação para `application/json`. Ele orienta sobre o processo de definir o header corretamente usando o `response writer`. 

### Etapas Principais

1. **Alterar o Content-Type:**
   - Antes de criar um novo encoder para listar os livros, é necessário ajustar o header. 
   - O comando `W.header().Set("Content-Type", "application/json")` é utilizado para definir o tipo de conteúdo da resposta.

2. **Verificação da Resposta:**
   - Após recompilar e rodar o servidor, o apresentador verifica na resposta do navegador, confirmando que o header agora está corretamente definido como `application/json`.

3. **Visualização do JSON:**
   - Ele menciona extensões de navegador que ajudam a visualizar respostas em JSON, destacando que o Firefox pode já ter suporte nativo para isso.

4. **Formatação de Propriedades:**
   - O apresentador observa que as APIs geralmente preferem que as propriedades sejam em minúsculas (estilo camel case). Para isso, ele explica como modificar a estrutura do objeto:
     - Exemplo de formatação:
       ```go
       type Livro struct {
           ID     int    `json:"id"`
           Título string `json:"título"`
           Autor  string `json:"autor"`
       }
       ```
   - Ele recomenda recompilar e testar a aplicação novamente, verificando se as propriedades aparecem em minúsculas.

5. **Conclusão:**
   - Finaliza destacando a importância de ajustar a formatação das propriedades para corresponder a padrões comuns em APIs.

### Recomendações
- Utilize extensões adequadas para visualizar JSON em navegadores.
- Sempre ajuste os nomes das propriedades ao converter para JSON para manter a compatibilidade com APIs comumente utilizadas.

Essa abordagem garante que a resposta JSON da aplicação esteja formatada de maneira correta e amigável para os desenvolvedores que a utilizarem.

Video Transcript

Então pessoal vamos lá mudar o content type para a nossa resposta para a application JSON. Vamos lá de volta nossa editor de texto aqui. No método para listar livros nós estamos dando o encode para enviar resposta em formato na string mais o content type aquele header do htp da resposta não está setado corretamente para o application barra JSON. Então antes de criar o novo encoder aqui para listar os livros vamos fazer o seguinte nós vamos setar o header. Então onde aqui a gente vai usar a gente vai usar o W W é o response writer que vai ser escritor de resposta. Vamos dar o W ponto header e põe as parênteses assim aí desse cara aqui do que retorna nós vamos chamar o método set para setar o header e o header vai ser content if em type. Vamos setar para como segundo argumento o valor application barra JSON. Com isso ele vai setar o header que cujo nome é content event type e o valor vai ser o application barra JSON. Vou salvar. No terminal vou recompilar e rodar o servidor e vou aqui no navegador de volta vamos lá recarregar e note que agora olhando na resposta código 200 ok. Agora temos como na resposta os headers tem um põe type application JSON. Com isso a resposta está corretamente conteúdo está corretamente setado e você vê que a extensão agora funciona direito automaticamente e é bem legal você pode ver visualizar o app já foi matado bem legalzinho para a gente. Bom então é essa a extensão do navegador no caso o Firefox tendo Chrome também talvez até do Firefox não precise que ele já tenha por padrão essa JSON view eu acho que você for about config no Firefox e o aceito risco deftools ponto JSON view acho que até foi um matador por padrão valor true então talvez nem precise da extensão para o Firefox mas eu sei que do Chrome tem essa extensão JSON view você pode usar é bem similar depende de seu navegador qualquer navegador que você tiver deve ter extensão para você visualizar melhor o seu jato são. Então é saído JSON view agora vamos voltar aqui na nossa resposta dos livres você note que na resposta tem a letra maiúscula em cada primeiro carácter aqui eu sei que muitas APIs pessoal gosta de ter letra minúscula né para poder corresponder ao JavaScript que normalmente uso camel case né então para poder você mudar a letra que a primeira letra para ser minúscula a gente tem que fazer o seguinte vai aqui no editor de texto lá na estrutura que define seu objeto né no objeto é uma estrutura a gente fala objeto por hábito de outras linguagens você tem o id título e autor então a gente tem que adicionar mais uma coisa mais aqui para dizer que quando for codificar e decodificar em formato JSON tem que usar outro nome então depois do tipo aqui da estrutura você fala assim o assento grave backtake fala j são dois pontos e o abre as aspas aqui essa maneira e fala o novo nome id e minúsculo a mesma coisa para o título backtake JSON dois pontos abre as aspas título letra minúscula cano case só tem uma palavra então se tivesse duas palavras se dá o que você pode fazer por exemplo título livro título do livro dessa maneira finalmente autor atacando os pontos a autor tá vamos ver se funciona para terminar o matos servidor recompila e roda de volta aqui é carregar a node que agora é minúsculo e esqueci de tirar esse do deixa eu tirar a desculpa só para terminar a compilha roda botou o fóx o navegador tá bom agora é a resposta tem que é o md título autor em letras minúsculos a primeira letra é isso nas estruturas adicione esse sustring aqui para dizer qual é que vai ser o nome da propriedade quando converter quando dá o Marshall né para a Json então por essa alça olha até a próxima
Nenhum comentário ainda (loading...)
Nenhum comentário ainda (loading...)
Gostou da aula? 😆👍
Apoie nosso trabalho com uma doação: