REST export do JSON v Drupalu 8 snadno a rychle

Tvorba RESTových rozhraní v Drupalu nikdy nebyla snazší. Potřebujete-li export do formátu JSON, stačí vám v Drupalu 8 naklikat si potřebná data ve Views a jen jim nastavit správný výstup. V článku si to zkusíme krok za krokem.

Reklama

Předpokládám, že je mezi vámi několik méně zkušených tvůrců webů, takže alespoň stručně, o čem je řeč. Pomocí RESTového rozhraní je možné komunikovat s webovou aplikací, získávat od ní data i je do ní posílat. My se podíváme na první případ. S pomocí modulu Views vytvoříme na webu adresu s výstupem data do podoby JSON.

Využití je různé. Já poslední dobou často využívám možnosti volat adresu generovanou modulem Views s různými parametry v URL adrese a získaná data pak zobrazuji AJAxem na stránce.

Konkrétním příkladem budiž změna textu o místě či lektorovi po přepnutí data konání na nějaké stránce s kurzem. Jiným využitím je například získání dat pro zobrazení na interaktivní mapě. A do třetice, například zobrazování dat o uživatelích po kliknutí na jejich ikonku v přehledové stránce.

Potřebné moduly pro JSON export

Přestože vše, co potřebujete k sestrojení výstupu do formátu JSON najdete přímo v jádře Drupalu 8, musíte si to nejprve aktivovat.

Vytváříme Views s REST exportem z Drupalu 8

Vytvořme si nyní export nadpisů článků na webu do podoby JSON na určité adrese. Řekněme, že budeme chtít zobrazit články vždy od konkrétního uživatele, jehož interní číslo známe.

REST export z Views v Drupalu 8

Doporučuji využít webový prohlížeč Firefox, který sám o sobě dovede zobrazit zformátovaný výstup do JSON. V případě Chrome si musíte doinstalovat nějaký doplněk.

JSON ve Firefoxu

Zpracování REST exportu z Drupalu 8

Možností, jak REST výstup do JSON zpracovat, je mnoho, záleží na scénáři konkrétního webu. Můžete jej samozřejmě načítat pomocí PHP. Já jsem si připravil jednoduchou ukázku v jQuery sloužící především pro ilustraci.

Předpokládejme, že na webu budou dvě tlačítka. Každé bude mít datový atribut obsahující id uživatele, od něhož chceme zobrazit články z databáze. Kód tlačítek by byl následující:

<a href="#" data-user="1" class="btn articles">články od uživatele Admin</a>
<a href="#" data-user="20" class="btn articles">články od uživatele Pepa</a>

JavaScriptový kód pro jQuery by pak byl následující:

$('a.articles').click(function(e){
  e.preventDefault();
  $.getJSON( '/clanky.json/'+$(this).data('user'), function( data ) {
    $.each( data, function( key, val ) {
      $('.clanky').append('<h2>'+val.nadpis+'</h2><p>'+val.datum+'</p>');
    });
  });
});

Je velice jednoduchý. Sleduje kliknutí na některé z tlačítek, přeruší výchozí událost, aby nedošlo k navigaci po stránce. Načte data z adresy /clanky.json/číslo, kde číslo je identifikátor uživatele očekávaný ve vytvořeném View. Zde jej přebíráme z datového atributu u tlačítek.

Smyčkou pak projdete získaná data a nějak je zpracujete. Ukázka vloží nadpis do značky H2, datum do odstavce a toto pro každý záznam přidá do zvoleného divu se třídou clanky.

Tip: Pokud by vás zajímalo další využití jQuery nejenom v Drupalu, přijďte na školení jQuery pro začátečníky v Brně.

slevové kupony

Reklama

Přidat komentář