Utilizando Jbuilder no Rails – Parte 1

Jbuilder

Facilitar a criação de response em formato JSON a partir dos dados de modelos do Rails. Utilizado em APIs para serializar dados e construir documentos JSON complexos de maneira eficiente e legível.
Para os familiarizados de Java, é…


This content originally appeared on DEV Community and was authored by Isadora Rocha

Jbuilder

Facilitar a criação de response em formato JSON a partir dos dados de modelos do Rails. Utilizado em APIs para serializar dados e construir documentos JSON complexos de maneira eficiente e legível.
Para os familiarizados de Java, é semelhante ao Serializable.

  • Jbuilder em Rails
json.data! @articles do |article|
  json.extract! article, :id, :title, :content
end
  • Serializable em Java
import java.io.Serializable;

public class Article implements Serializable {
    private int id;
    private String title;
    private String content;

    // Getters e Setters
}

ESSE POST É UMA CONTINUAÇÃO DO REspec Estrutura de Teste em Ruby on Rails

No CONTROLLER, em articles_controller.rb:

ARTICLES CONTROLLER

Foi alterado a linha render JSON - que está comentado na imagem acima - pois o controller não deve fazer duas coisas ao mesmo tempo, quebrando o princípio DRY (Don't Repeat Yourself).

  • ANTES
render json: Article.all, status: :ok

Aqui, o JSON é gerado diretamente no controller, o que faz com que ele cuide de duas coisas: buscar os dados e formatar a resposta, o que quebra o princípio de responsabilidade única.

  • DEPOIS
@articles = Article.all

Agora, o controller apenas busca os dados. A renderização e formatação JSON devem ser tratadas no view.

Na VIEW, em views >> api >> v1 >> articles >> index.json.jbuilder:

OBS: Para funcionar corretamente, é importante deixar o namespace corretamente, dentro das pastas api/v1

VIEW JBUILDER

Bizu para que eu me lembre: json.bloco/nome 'retorna'

Como assim?

Por exemplo, o meu JSON de nome batata, retorna ‘BaTaTa’ no meu body.

POSTMAN

OUTRO EXEMPLO

json.array! @articles do |article|
  json.id article
end

A função array! de JSON de Articles(do controller), faça que cada article retorne um bloco JSON chamado id, e dentro desse bloco, está dizendo que para cada article, o Jbuilderdeve criar uma chave chamada id.

Segue a imagem para melhor visualização:
array articles

RECOMENDAÇÃO
Ao invés de utilizar o json.array!, utilize o json.data para não haver atritos em utilizar outros componentes do jbuilder.

DEFINIR RETORNO SOMENTE DO TITLE DOS ARTICLES PARA O JSON

json.data @articles do |article|
  json.title article.title
end

Segue a imagem para melhor visualização:

title json

CRÉDITOS e RECOMENDAÇÃO: puts_dev

Esse post tem somente a finalidade de consolidar o que aprendi. Qualquer dúvida ou erro que tenha visto, pode me avisar!


This content originally appeared on DEV Community and was authored by Isadora Rocha


Print Share Comment Cite Upload Translate Updates
APA

Isadora Rocha | Sciencx (2024-09-17T14:57:35+00:00) Utilizando Jbuilder no Rails – Parte 1. Retrieved from https://www.scien.cx/2024/09/17/utilizando-jbuilder-no-rails-parte-1/

MLA
" » Utilizando Jbuilder no Rails – Parte 1." Isadora Rocha | Sciencx - Tuesday September 17, 2024, https://www.scien.cx/2024/09/17/utilizando-jbuilder-no-rails-parte-1/
HARVARD
Isadora Rocha | Sciencx Tuesday September 17, 2024 » Utilizando Jbuilder no Rails – Parte 1., viewed ,<https://www.scien.cx/2024/09/17/utilizando-jbuilder-no-rails-parte-1/>
VANCOUVER
Isadora Rocha | Sciencx - » Utilizando Jbuilder no Rails – Parte 1. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2024/09/17/utilizando-jbuilder-no-rails-parte-1/
CHICAGO
" » Utilizando Jbuilder no Rails – Parte 1." Isadora Rocha | Sciencx - Accessed . https://www.scien.cx/2024/09/17/utilizando-jbuilder-no-rails-parte-1/
IEEE
" » Utilizando Jbuilder no Rails – Parte 1." Isadora Rocha | Sciencx [Online]. Available: https://www.scien.cx/2024/09/17/utilizando-jbuilder-no-rails-parte-1/. [Accessed: ]
rf:citation
» Utilizando Jbuilder no Rails – Parte 1 | Isadora Rocha | Sciencx | https://www.scien.cx/2024/09/17/utilizando-jbuilder-no-rails-parte-1/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.