Cómo importar fuentes externas a su sitio web de Drupal 9 con el módulo de fuentes
Publicado: 2020-11-03Como desarrollador, se encontrará con varias situaciones en las que necesite importar datos de fuentes externas. A veces, necesitará importar datos de más de una fuente a su sitio web Drupal 9. El módulo Feeds en Drupal es un módulo simple y sin complicaciones que permite incluso a los usuarios sin conocimientos técnicos importar contenido de diferentes fuentes de datos. Lo que lo hace más simple que otros módulos de Drupal como el módulo Migrate, es que todo el proceso de importación se realiza a través de la interfaz de usuario de Drupal. Le ofrece contenido de la forma que desee tan pronto como esté disponible.
Muchos sitios web importan feeds RSS / XML de sitios de terceros. En este blog, obtendremos una fuente de noticias importada a través de esta API de terceros que proporciona datos en formato json con la ayuda del módulo Feeds en Drupal 9.

Instalación del módulo de fuentes de Drupal
El módulo Feeds para Drupal 9 le permite importar datos de diferentes formatos como CSV, XML, JSON, RSS, etc. a nodos, usuarios y términos de taxonomía a través de la interfaz de usuario.
1. Instale el módulo Drupal Feeds (aquí usaremos composer)
composer require 'drupal/feeds:^[email protected]'composer require 'drupal/feeds:^[email protected]'
2. Aquí, usamos feeds JSON para importar datos. Por lo tanto, necesitamos un analizador JSON que necesitará que instalemos un módulo más que es el analizador extensible de Feeds. La mejor forma de instalar este módulo es utilizando composer porque descarga todas las bibliotecas necesarias. (También puede omitir el primer paso si está descargando usando Composer, ya que el módulo de feeds de Drupal será una dependencia para el módulo feed_ex ).
composer require 'drupal/feeds_ex:^[email protected]'composer require 'drupal/feeds_ex:^[email protected]'
Nota: Si no está usando Composer para instalar, las bibliotecas requeridas por este módulo también se pueden instalar con el módulo Ludwig. Instale el módulo Ludwig y luego vaya a / admin / reports / packages para obtener más instrucciones.
3. Habilite los módulos feeds y feeds_ex (analizadores extensibles de feeds) mediante drush o mediante la interfaz de usuario.

Configuración e implementación del módulo de feeds
Aquí, vamos a importar los datos de los artículos del sitio web https://newsapi.org/ (Temas relacionados con " Titulares principales de TechCrunch en este momento ") que se exponen en formato JSON que se muestra en la siguiente captura de pantalla.
Para obtener estos datos de noticias, debemos iniciar sesión en el sitio web y obtener una clave API. A continuación, seleccione los temas para los que desea importar los datos a su sitio web.

Mirando la API, creemos un tipo de contenido donde nuestros datos necesitan ser importados.
Crear un tipo de contenido
Aquí, he creado un nuevo tipo de contenido llamado " Noticias ". Elija el tipo de campo según su JSON para el que se deben migrar los datos.

En la captura de pantalla anterior, hemos elegido campos simples para importar los datos como Autor, que es un campo de texto (sin formato) para la importación de datos del autor de la clave JSON .

Como puede ver en la captura de pantalla anterior, hemos agregado el campo de elemento Feeds de tipo Feed y hemos elegido el tipo de feed en consecuencia. Aprenderemos a crear un tipo de Feed en la siguiente sección a continuación.
Crear un tipo de feed
Siga los pasos a continuación para crear un tipo de feed.
- Vaya a la página de descripción general de Feeds ( / admin / structure / feeds ). Puede ver todos los feeds de Drupal enumerados en esta página.
Ya he creado 2 feeds. Aquí voy a utilizar las fuentes de noticias . Puede crear su propio tipo de feed haciendo clic en Agregar tipo de feed. - Al editar el tipo de feed o agregar un nuevo tipo de feed, veremos las siguientes opciones.
- Ajustes básicos
Configuremos los ajustes básicos para el tipo de feed. Primero, proporcionemos el nombre, la descripción y la explicación o las pautas de envío para el tipo de feed.
El período de importación (que se muestra en la pestaña de configuración a continuación) lo ayuda a elegir la frecuencia con la que debe ejecutarse la importación. Esto se hará mediante un trabajo cron. Si selecciona Desactivado , la importación se realizará manualmente.

- La opción de configuración de Fetcher muestra dónde está importando el contenido o desde dónde está obteniendo el contenido.
Ofrece 3 opciones para elegir,
- Directorio: - Importe el contenido de un archivo o una serie de archivos que ya se encuentran en su sitio web.
- Descargar desde URL: - Importar el contenido de la url (que estaremos eligiendo en nuestro caso).
- Cargar archivo: - Importa contenido de un archivo.
Según el Fetcher seleccionado, tendremos que configurar los ajustes del Fetcher. Para la opción secundaria de la configuración del buscador, tenemos la siguiente lista de configuraciones.

- Detecta automáticamente feeds
- Utilice PubSubHubbub
- Descargar siempre
- Pide tiempo fuera
Configure los ajustes secundarios en consecuencia.

• Analizador le permite configurar el formato de la fuente. Aquí tenemos muchas opciones para elegir, como CSV, HTML, OPML, JsonPath (que es nuestra configuración), etc. Elija una del menú desplegable de acuerdo con el formato de su feed.
Según el analizador seleccionado, tendremos que configurar los ajustes del analizador. En nuestro caso, no tenemos ninguna configuración de analizador para analizadores de tipo JsonPath.
• La configuración del procesador muestra configuraciones del tipo de contenido que creará la fuente.
Del mismo modo, tenemos una opción de configuración secundaria para el procesador como se muestra en la imagen a continuación.

Configure sus ajustes secundarios de acuerdo con los requisitos.
La siguiente captura de pantalla muestra la configuración principal del buscador, analizador y procesador.

3. Mapeo de fuentes para orientar
- Contexto
El texto de ayuda dice la consulta de base para ejecutar, que muestra la raíz o la base de los datos que se deben apuntar para la importación de feeds de Drupal como contenido. En nuestro ejemplo, lo hemos configurado como "$ .articles . *" Porque nuestros datos residen dentro de la clave del artículo. Mire esta documentación de ruta para configurar la suya.
- Asignaciones de campo
Ahora, podemos configurar el módulo Feeds para decidir qué valor extraído del JSON debe asignarse a qué campo en el tipo de contenido de noticias de Drupal.
Estos destinos son los campos de datos de Drupal y se extraen según el procesador que seleccione al crear el tipo de fuente. También puede configurar otras configuraciones para las asignaciones particulares de los campos como Idioma, formato de filtro (aplicable para campos con formato de texto), único (identificador único utilizado para rastrear si el contenido es nuevo o existente), etc.
Por ejemplo, si queremos importar el título del contenido del artículo de noticias de la fuente JSON como campo de título de contenido de noticias de Drupal, el destino será el campo Título de Drupal y la fuente será la clave de título del artículo de noticias JSON como se muestra en la captura de pantalla siguiente.

Aquí estamos usando la configuración de mapeo como se muestra en la siguiente captura de pantalla.

También puede clonar el tipo de fuente utilizando el módulo Entity clone Drupal que también es compatible con Drupal 9.
Crear un feed
Para crear un feed, vaya al contenido -> pestaña Feeds -> agregar feed -> seleccione el tipo de feed

Ya he creado uno para Noticias. Para crear una nueva fuente, haga clic en el botón + Agregar fuente y configure la fuente según sea necesario. Para nuestro blog, lo hemos configurado como se muestra en la siguiente captura de pantalla.

Después de la configuración, haga clic en Guardar e importar . Esto importará los feeds de Drupal como contenido. Cuando se importen los datos, verá el estado de procesamiento como se muestra en la siguiente captura de pantalla.

Una vez que los datos JSON se migran al contenido, podemos ver el contenido agregado al tipo de contenido de noticias como se muestra en la captura de pantalla a continuación.

Ahora, comparemos el contenido importado con los feeds.


Para obtener información más detallada, puede consultar esta guía.
Módulos adicionales para ampliar el módulo Feeds
• El módulo Feeds Tamper le ayuda a modificar y actualizar los datos de origen antes de que se importen a su sitio web.
• Los analizadores extensibles de feeds contienen un conjunto de analizadores como XPath XML & HTML, JSONPath JSON & JSON lines parser, etc.
• El módulo Vista previa de importación de feeds le permite ver el contenido en su fuente antes de importarlo.
• El módulo Commerce Feeds le ayuda a importar productos a su sitio Drupal Commerce.
