L'essentiel de Ruby on Rails

Générer des JSON avec Rails

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
De nos jours, beaucoup d'applications web proposent une interface de programmation API renvoyant des réponses en langage JSON. Découvrez comment le faire avec Rails et comment inclure des associations dans les réponses.
03:42

Transcription

Saviez-vous que votre application peut déjà générer des JSON, comme vous le voyez ici ? Pour le vérifier, vous pouvez renseigner cette URL dans votre navigateur. Ceci est notamment dû à la présence de la gemme « jbuilder », ou plutôt « json builder ». Peut-être aviez-vous remarqué lors de l'usage de rails generate scaffold que Ruby on rails générait des fichiers .json, jjbuilder au sein des vues. Vous retrouvez ici notamment ce qui nous permet de visualiser le json d'une réponse sur notre site. Remarquez comment en jbuilder nous pouvons également utiliser des « partial ». Celui-ci fait référence à celui qui est présent là. Nous voyons ici que sont extraits les attributs suivants de la donnée « topic answer ». Nous avons également rajouté une URL permettant d'accéder au « topic answer ». Nous allons nous amuser à générer ce JSON pour un sujet de discussion. Commencez par générer un fichier « show.json.jbuilder » au sein de votre dossier « views topics ». Pour le moment, nous allons simplement faire un rendu d'un partial à l'image de ce qui nous avions au niveau des réponses. Créez donc le partial « _topic.json.jbuilder ». De la même manière, nous y mettons le code à l'image de ce qu'il y avait dans le partial pour les réponses. Vous pouvez dès à présent accéder à un sujet de discussion en format JSON. Nous aimerions maintenant inclure l'ensemble de la liste des réponses au sein du JSON d'un sujet de discussion. Plutôt que d'écrire le code, nous allons intelligemment utiliser « index.json.jbuilder » des réponses en tant que partial. Ajoutez donc « underscore » à ce fichier. À l'intérieur, retirez l'arobase de « topic answers ». Une fois fait, retournez dans votre partial de sujets de discussion. Rajoutez ensuite « json.topic answers », qui aura pour effet de rajouter une clé dans notre JSON de mes « topic answers » « do end ». À l'intérieur, nous utilisons la méthode « partial » pour utiliser « topic answers /index » comme partial. Nous devons lui passer en paramètre la liste des réponses, que nous récupérons depuis notre sujet de discussion. Si vous rafraîchissez, vous verrez qu'il y a une erreur. Ceci est lié au fait que nous initialisons une nouvelle réponse au sein de notre action « show » dans le contrôleur de nos sujets de discussion. Nous allons donc modifier cette action. Ici, il faudrait que cette ligne 16, où nous initialisons une nouvelle réponse, ne soit exécutée que lorsque nous accédons à un sujet de discussion sur une page HTML. Il y a deux manières de faire cela. Soit vous pouvez utiliser le paramètre « format », qui vaudra HTML, si nous sommes sur une page HTML, soit vous pouvez utiliser la méthode « respond to ». La méthode « respond to » fonctionne de la manière suivante. Elle prend en paramètre un bloc de code dans lequel elle injecte le format de la page actuellement accédée. Ce format peut être HTML, JSON, XML, tout ce que vous voulez. Pour chacun de ces formats, il y a une méthode correspondante. Nous pouvons par exemple utiliser « format.html » pour exécuter uniquement lorsque nous accédons à une page HTML. Si vous allez dans le contrôleur des réponses, vous verrez que la méthode « respond to » est également utilisée au niveau de « create » et « update ». Cela permet de générer des pages différentes selon si nous parvenons à sauvegarder une réponse ou non. Pour les autres actions, comme « show » ou « edit », elle est implicite. C'est à dire que rails saura quel format de fichier renvoyer au niveau des views en fonction de l'URL accédée, à savoir en fonction de la présence ou non de « .json ». Vous pouvez maintenant rafraîchir votre page et lirez la liste des réponses au sein de votre sujet de discussion. Cette vidéo vous a présenté jbuilder, utilisé par défaut en Ruby on rails pour pouvoir générer facilement et rapidement des JSON.

L'essentiel de Ruby on Rails

Concevez des applications web évolutives et intemporelles avec Ruby on Rails. Installez l’environnement, réalisez un projet de stack overflow, enrichissez-le, etc.

6h08 (85 vidéos)
Aucun commentaire n´est disponible actuellement

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !