Cum să importați fluxuri externe în site-ul dvs. web Drupal 9 cu modulul Feeds
Publicat: 2020-11-03În calitate de dezvoltator, veți întâlni mai multe situații în care trebuie să importați date din surse externe. Uneori va trebui să importați date din mai multe surse pe site-ul dvs. web Drupal 9. Modulul Feeds din Drupal este un modul simplu, fără probleme, care permite chiar și utilizatorilor netehnici să importe conținut din diferite surse de date. Ceea ce îl face mai simplu decât alte module Drupal, cum ar fi modulul Migrare, este că întregul proces de import se face prin interfața de utilizare a Drupal. Vă oferă conținut așa cum doriți, de îndată ce este disponibil.
Multe site-uri web importă fluxuri RSS/XML de pe site-uri terțe. În acest blog, vom obține un flux de știri importat prin acest API terță parte care oferă date în format json cu ajutorul modulului Feeds din Drupal 9.

Instalarea modulului Drupal Feeds
Modulul Feeds pentru Drupal 9 vă permite să importați date din diferite formate, cum ar fi CSV, XML, JSON, RSS etc. în noduri, utilizatori și termeni de taxonomie prin interfața de utilizare.
1. Instalați modulul Drupal Feeds (aici vom folosi compozitorul)
composer require 'drupal/feeds:^[email protected]'composer require 'drupal/feeds:^[email protected]'
2. Aici, folosim fluxuri JSON pentru importarea datelor. Deci, avem nevoie de un parser JSON care va avea nevoie de noi să instalăm încă un modul, care este analizatorul extensibil Feeds. Cel mai bun mod de a instala acest modul este folosirea compozitorului, deoarece descarcă toate bibliotecile necesare. (De asemenea, puteți sări peste primul pas dacă descărcați folosind compozitor, deoarece modulul de feed-uri Drupal va fi o dependență pentru modulul feed_ex ).
composer require 'drupal/feeds_ex:^[email protected]'composer require 'drupal/feeds_ex:^[email protected]'
Notă: Dacă nu utilizați Composer pentru a instala, atunci bibliotecile cerute de acest modul pot fi instalate și cu modulul Ludwig. Instalați modulul Ludwig și apoi accesați /admin/reports/packages pentru instrucțiuni suplimentare.
3. Activați modulul feeds și feeds_ex (Feeds Extensible Parsers) fie folosind drush, fie prin UI.

Configurarea și implementarea modulului Feeds
Aici, vom importa datele din articolele de pe site-ul https://newsapi.org/ (Subiecte legate de „Toate titluri de la TechCrunch chiar acum ”), care sunt expuse în format JSON prezentat în captura de ecran de mai jos.
Pentru a obține aceste date de știri, trebuie să ne autentificăm pe site și să obținem o cheie API. Apoi, selectați subiectele pentru care doriți să importați datele pe site-ul dvs. web.

Privind API-ul, să creăm un tip de conținut în care datele noastre trebuie să fie importate.
Crearea unui tip de conținut
Aici, am creat un nou tip de conținut numit „ Știri ”. Alegeți tipul de câmp în funcție de JSON pentru care datele trebuie migrate.

În captura de ecran de mai sus, am ales câmpuri simple pentru importarea datelor, cum ar fi Autor, care este câmpul Text (plat) pentru importarea datelor de la autorul cheii JSON .

După cum vedeți în captura de ecran de mai sus, am adăugat câmpul de element Feeds de tip Feed și am ales tipul de feed în consecință. Vom învăța cum să creăm un tip de feed în următoarea secțiune de mai jos.
Crearea unui tip de feed
Urmați pașii de mai jos pentru a crea un tip de feed.
- Navigați la pagina de prezentare generală a fluxurilor ( /admin/structure/feeds ). Puteți vedea toate fluxurile Drupal listate pe această pagină.
Am creat deja 2 fluxuri. Aici voi folosi fluxurile de știri . Vă puteți crea propriul tip de feed făcând clic pe Adăugați tip de feed. - Când editați tipul de feed sau adăugați un nou tip de feed, vom vedea opțiunile de mai jos.
- Setări de bază
Să configuram setările de bază pentru tipul de feed. Mai întâi, furnizați numele, descrierea și explicația sau ghidurile de trimitere pentru tipul de feed.
Perioada de import (afișată în fila de setări de mai jos) vă ajută să alegeți cât de des ar trebui să ruleze importul. Acest lucru se va face printr-un job cron. Dacă selectați Off, atunci importul se va face manual.

- Opțiunea de setări Fetcher arată de unde importați sau preluați conținutul.
Oferă 3 opțiuni din care să alegeți,
- Director :- Importați conținutul dintr-un fișier sau dintr-o serie de fișiere aflate deja pe site-ul dvs.
- Descărcați de la URL:- Importați conținutul din url (pe care îl vom alege în cazul nostru).
- Încărcați fișierul: - importați conținut dintr-un fișier.
Pe baza Fetcher-ului selectat, va trebui să configuram setările Fetcher-ului. Pentru opțiunea secundară a setărilor de preluare, avem lista de setări de mai jos.

- Detectează automat fluxurile
- Utilizați PubSubHubbub
- Descărcați întotdeauna
- Solicitați time out
Configurați setările secundare în consecință.

• Parser vă permite să configurați formatul fluxului. Aici avem multe opțiuni din care să alegeți, cum ar fi CSV, HTML, OPML, JsonPath (care este setarea noastră), etc. Alegeți-o din meniul drop-down în funcție de formatul dvs. de feed.
Pe baza parserului selectat, va trebui să configuram setările parserului. În cazul nostru, nu avem setări de parser pentru analizatorii de tip JsonPath.
• Setările procesorului arată configurațiile tipului de conținut pe care îl va crea feedul.
În mod similar, avem o opțiune de setări secundare pentru procesor, așa cum se arată în imaginea de mai jos.

Configurați setările secundare conform cerințelor.
Captura de ecran de mai jos arată setările principale pentru fetcher, parser și procesor.

3. Cartografierea surselor către țintă
- Context
Textul de ajutor spune interogarea de bază de rulat, care arată rădăcina sau baza datelor care urmează să fie vizate pentru importul de feeduri Drupal ca conținut. În exemplul nostru, l-am configurat ca „$.articles .*”, deoarece datele noastre se află în cheia articolului. Uită-te la această documentație de cale pentru a configura a ta.
- Mapări de câmp
Acum, putem configura modulul Feeds pentru a decide ce valoare extrasă din JSON ar trebui să se mapeze la ce câmp din tipul de conținut de știri Drupal.
Aceste ținte sunt câmpurile de date Drupal și sunt introduse în funcție de procesorul pe care îl selectați la crearea tipului de feed. De asemenea, puteți configura alte setări pentru mapările specifice ale câmpurilor, cum ar fi Limbă, format de filtru (aplicabil pentru câmpurile formatate text), unic (identificator unic utilizat pentru a urmări dacă conținutul este unul nou sau existent), etc.
De exemplu, dacă dorim să importăm titlul conținutului articolului de știri din feedul JSON ca câmp pentru titlul conținutului știrilor Drupal, atunci ținta va fi câmpul Titlu Drupal, iar sursa va fi cheia titlului articolului de știri JSON, așa cum se arată în captura de ecran de mai jos.

Aici folosim configurația de cartografiere așa cum se arată în captura de ecran de mai jos.

De asemenea, puteți clona tipul de feed folosind modulul Drupal de clonare a entității, care este, de asemenea, acceptat în Drupal 9.
Crearea unui feed
Pentru a crea un feed, navigați la conținut -> fila Feeds -> adăugați feed -> selectați tipul de feed

Am creat deja unul pentru Știri. Pentru a crea un nou feed, faceți clic pe butonul + Adăugați feed și configurați feedul după cum este necesar. Pentru blogul nostru, am configurat așa cum se arată în captura de ecran de mai jos.

După configurare, faceți clic pe Salvare și importare . Aceasta va importa fluxurile Drupal ca conținut. Când datele sunt importate, veți vedea starea procesării, așa cum se arată în captura de ecran de mai jos.

Odată ce datele JSON sunt migrate la conținut, putem vedea conținutul adăugat la tipul de conținut de știri, așa cum se arată în captura de ecran de mai jos.

Acum, să comparăm conținutul importat cu feedurile.


Pentru informații mai detaliate puteți consulta acest ghid.
Module suplimentare pentru a extinde modulul Feeds
• Modulul Feeds Tamper vă ajută să modificați și să actualizați datele sursă înainte ca acestea să fie importate pe site-ul dvs. web.
• Analizatoarele extensibile Feeds conțin un set de analizoare precum XPath XML și HTML, JSONPath JSON și JSON lines parser etc.
• Modulul Feeds Import Preview vă permite să vedeți conținutul din sursă înainte de a-l importa.
• Modulul Commerce Feeds vă ajută să importați produse pe site-ul dvs. Drupal Commerce.
