Desenvolvimento de API: Jbuilder
O Jbuilder monta respostas JSON no Rails com chamadas de método comuns num objeto chamado json. As aulas leem linha a linha as views .json.jbuilder de um app, junto com o código-fonte instalado do jbuilder 2.15.1. Elas tratam do setter implícito, que leva as chamadas pelo method_missing até o set!, do json.array! para coleções e do json.partial! para formatos repetidos. Também mostram como o Rails registra o handler do jbuilder e escolhe um template para uma requisição JSON. Por fim, comparam views montadas com chamar to_json ou as_json num model.
O que você vai aprender
- ✓Como chamadas implícitas como json.status chegam ao set! pelo method_missing
- ✓Montar objetos aninhados e arrays sob uma chave com set! e bloco
- ✓Transformar uma coleção mista num array JSON com json.array!
- ✓O que o json.partial! faz e quando um formato JSON repetido pede por ele
- ✓Como o Rails registra o handler do jbuilder e acha um arquivo .json.jbuilder para uma requisição
- ✓Por que montar JSON numa view difere de chamar to_json ou as_json num model
Seis views .json.jbuilder, já em uso neste app
Num banco de desenvolvimento, isso retorna:
Ler a aula completa grátis →Currículo
7 aulasSeis views .json.jbuilder, já em uso neste app
Compara um model despejado com to_json a um resultado de busca de quatro chaves e apresenta o objeto json.
json.key value é set!, na view do sandbox
Mostra como chamadas implícitas como json.status chegam ao set! pelo method_missing na view execute do sandbox.
json.array!: transformando uma coleção mista num array JSON
Lê a view de busca, onde o json.array! transforma uma lista mista de cursos e aulas num array JSON.
json.partial!: instalado, ainda sem uso neste app
Explica o que o json.partial! faz e por que nenhuma das seis views Jbuilder do app o usa ainda.
Como o Rails acha um arquivo .json.jbuilder
Trata do registro do handler no railtie, do cabeçalho Accept e de como o Rails chega a um arquivo .json.jbuilder.
Montar vs. despejar: Jbuilder contra o to_json e o as_json deste app
Compara o to_json num model, que despeja as 14 colunas, com as quatro chaves escolhidas no Jbuilder.
Juntando tudo: montando JSON de propósito, uma chamada por vez
Revisa set!, array!, partial!, a busca de template e montar contra despejar, e fecha com um desafio em Ruby puro.