{"id":32990,"date":"2025-05-26T14:10:31","date_gmt":"2025-05-26T12:10:31","guid":{"rendered":"https:\/\/www.codemotion.com\/magazine\/?p=32990"},"modified":"2025-05-26T14:10:33","modified_gmt":"2025-05-26T12:10:33","slug":"primeros-pasos-con-drupal-conceptos-clave-y-arquitectura-base","status":"publish","type":"post","link":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/primeros-pasos-con-drupal-conceptos-clave-y-arquitectura-base\/","title":{"rendered":"Primeros pasos con Drupal: conceptos clave y arquitectura base"},"content":{"rendered":"\n<p>Si has llegado hasta aqu\u00ed tras leer el art\u00edculo anterior, ya conoces <a href=\"https:\/\/www.codemotion.com\/magazine\/es\/?p=32966\">por qu\u00e9 Drupal sigue siendo una tecnolog\u00eda relevante en 2025<\/a>. Hablamos de su evoluci\u00f3n, su enfoque API-first, su seguridad y su potencial para proyectos exigentes. Pero ahora toca ir un paso m\u00e1s all\u00e1: entender c\u00f3mo funciona Drupal desde dentro.<\/p>\n\n\n\n<p>En este art\u00edculo vamos a sentar las bases para comenzar a trabajar con Drupal. Si es tu primer contacto con este CMS, no te preocupes: aqu\u00ed desgranaremos los conceptos esenciales \u2014como entidades, tipos de contenido, vistas y m\u00f3dulos\u2014 para que puedas moverte con soltura en su ecosistema. Y si ya lo conoces, quiz\u00e1s descubras matices que pasaste por alto.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-primer-contacto-que-es-realmente-drupal\">Primer contacto: \u00bfqu\u00e9 es realmente Drupal?<\/h2>\n\n\n\n<p>Hist\u00f3ricamente, Drupal se ha distinguido por ser una plataforma de construcci\u00f3n m\u00e1s que un producto cerrado. En lugar de ofrecer una experiencia &#8220;instalar y usar&#8221;, su propuesta era brindar las herramientas necesarias para crear sitios altamente personalizados desde cero. Esa flexibilidad lo hizo muy potente, pero tambi\u00e9n intimidante para quienes buscaban resultados r\u00e1pidos.<\/p>\n\n\n\n<p>Esto cambi\u00f3 con la llegada de <a href=\"https:\/\/new.drupal.org\/drupal-cms\">Drupal CMS<\/a>, anteriormente conocido como <a href=\"https:\/\/www.drupal.org\/about\/starshot\">Project Starshot<\/a>. Se trata de una nueva <strong>distribuci\u00f3n oficial<\/strong> que propone una experiencia de instalaci\u00f3n m\u00e1s simple, moderna y funcional desde el inicio. Incluye una selecci\u00f3n de m\u00f3dulos y configuraciones predefinidas que permiten comenzar un proyecto sin tener que construir toda la estructura manualmente.<\/p>\n\n\n\n<p>En esencia, Drupal CMS busca ofrecer lo mejor de ambos mundos:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Una experiencia inicial fluida, pensada para editores y usuarios no t\u00e9cnicos.<\/li>\n\n\n\n<li>Toda la potencia, extensibilidad y control granular que los desarrolladores esperan de Drupal.<\/li>\n<\/ul>\n\n\n\n<p>Esto posiciona a Drupal en un nuevo lugar: ya no es solo una herramienta para desarrolladores experimentados, sino tambi\u00e9n una opci\u00f3n real para quienes buscan lanzar un sitio funcional en minutos y escalarlo a medida que crecen sus necesidades.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-el-modelo-de-datos-todo-empieza-con-las-entidades\">El modelo de datos: todo empieza con las entidades<\/h2>\n\n\n\n<p>Una de las claves para entender Drupal es interiorizar que todo es una <a href=\"https:\/\/www.drupal.org\/docs\/drupal-apis\/entity-api\">entidad<\/a>. Una p\u00e1gina, un usuario, una categor\u00eda o un comentario\u2026 todos ellos son distintos tipos de entidades. Este enfoque permite un modelo de datos consistente, flexible y extensible.<\/p>\n\n\n\n<p>Las entidades se agrupan en <strong>bundles<\/strong> (paquetes de configuraci\u00f3n) y pueden tener m\u00faltiples campos. Algunos ejemplos comunes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Node<\/strong>: unidad b\u00e1sica de contenido (como un art\u00edculo, evento o producto).<\/li>\n\n\n\n<li><strong>User<\/strong>: representa a una persona que interact\u00faa con el sistema.<\/li>\n\n\n\n<li><strong>Taxonomy term<\/strong>: categor\u00edas o etiquetas que ayudan a clasificar contenido.<\/li>\n\n\n\n<li><strong>File<\/strong>, <strong>Media<\/strong>, <strong>Comment<\/strong>, <strong>Block<\/strong>: otros tipos de entidad especializados, todos reutilizables y combinables.<\/li>\n<\/ul>\n\n\n\n<p>Cada entidad puede extenderse con campos personalizados seg\u00fan las necesidades del sitio. Por ejemplo, un nodo de tipo <em>\u201cCurso\u201d<\/em> podr\u00eda tener campos de duraci\u00f3n, nivel de dificultad y fecha de inicio, sin necesidad de escribir c\u00f3digo.<\/p>\n\n\n\n<p>Pero el sistema va m\u00e1s all\u00e1: muchas entidades en Drupal tambi\u00e9n soportan revisiones y traducciones.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Las <strong>revisiones<\/strong> permiten mantener un historial de cambios. Puedes ver qui\u00e9n modific\u00f3 qu\u00e9, cu\u00e1ndo, y revertir a versiones anteriores si es necesario. Esto resulta especialmente \u00fatil en entornos editoriales donde varios usuarios trabajan sobre el mismo contenido.<\/li>\n\n\n\n<li>Las <strong>traducciones<\/strong> permiten mantener m\u00faltiples versiones ling\u00fc\u00edsticas de una misma entidad. Drupal gestiona autom\u00e1ticamente qu\u00e9 campos deben traducirse y cu\u00e1les deben compartirse entre idiomas, lo que lo hace ideal para proyectos multiling\u00fces.<\/li>\n<\/ul>\n\n\n\n<p>Gracias a esta estructura, Drupal ofrece un sistema de contenido que no solo es robusto y escalable, sino tambi\u00e9n altamente controlado, auditable y adaptable a flujos de trabajo complejos.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-construyendo-contenido-como-se-combinan-entidades-campos-y-bundles\">Construyendo contenido: c\u00f3mo se combinan entidades, campos y bundles<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/i.postimg.cc\/NMppssXK\/pexels-jimbear-1362496.jpg\" alt=\"Muestra las bases de una estructura s\u00f3lida de hormig\u00f3n en forma de tabiques y columnas.\n\nCr\u00e9ditos a Jimmy Chan en pexels.com\"\/><\/figure>\n\n\n\n<p>Despu\u00e9s de entender que todo en Drupal gira en torno a las entidades, el siguiente paso l\u00f3gico es ver c\u00f3mo se especializan esas entidades para representar distintos tipos de contenido. Aqu\u00ed es donde entran en juego dos piezas clave: los <strong>bundles<\/strong> y los <strong>campos<\/strong>.<\/p>\n\n\n\n<p>Un bundle es una variaci\u00f3n de una entidad base. Por ejemplo, dentro de la entidad node (que representa contenido), puedes tener varios bundles: <em>\u201cArt\u00edculo\u201d<\/em>, <em>\u201cP\u00e1gina b\u00e1sica\u201d<\/em>, <em>\u201cEvento\u201d<\/em>, etc. Cada uno de estos bundles define una estructura espec\u00edfica de campos y comportamiento, pero <strong>todos comparten<\/strong> las capacidades generales de la entidad node: <em>revisiones<\/em>, <em>publicaci\u00f3n<\/em>, <em>traducci\u00f3n<\/em>, etc.<\/p>\n\n\n\n<p>Los campos son los elementos que definen qu\u00e9 informaci\u00f3n espec\u00edfica se almacenar\u00e1 en cada bundle. Puedes a\u00f1adir campos de texto, fecha, archivos, listas de selecci\u00f3n, referencias a otras entidades, y muchos m\u00e1s. Estos campos son totalmente configurables y reutilizables entre distintos bundles o tipos de entidad.<\/p>\n\n\n\n<p>Por ejemplo, podr\u00edas crear un tipo de contenido <em>\u201cNoticia\u201d<\/em> con los siguientes campos:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>T\u00edtulo<\/li>\n\n\n\n<li>Cuerpo de texto<\/li>\n\n\n\n<li>Imagen destacada<\/li>\n\n\n\n<li>Fecha de publicaci\u00f3n<\/li>\n\n\n\n<li>Categor\u00eda (referencia a t\u00e9rminos de taxonom\u00eda)<\/li>\n<\/ul>\n\n\n\n<p>Este modelo permite que cada tipo de contenido se adapte a lo que necesita representar, sin depender de una estructura \u00fanica y r\u00edgida.<\/p>\n\n\n\n<p>Adem\u00e1s, cada bundle puede tener su propio dise\u00f1o de formulario, permisos de acceso, opciones de publicaci\u00f3n y vistas asociadas. As\u00ed, Drupal no te obliga a encajar tu contenido en moldes predefinidos: t\u00fa defines los moldes seg\u00fan tus necesidades.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-mostrando-datos-el-poder-de-las-vistas\">Mostrando datos: el poder de las vistas<\/h2>\n\n\n\n<p>Una vez tienes contenido en tu sitio, necesitas mostrarlo de forma din\u00e1mica y reutilizable. Aqu\u00ed es donde entra <a href=\"https:\/\/www.drupal.org\/docs\/8\/core\/modules\/views\">Views<\/a>, una de las herramientas m\u00e1s potentes y queridas del ecosistema Drupal. Desde la versi\u00f3n 8, Views forma parte del n\u00facleo, lo que refleja su papel central en la construcci\u00f3n de interfaces sin necesidad de escribir una sola l\u00ednea de c\u00f3digo.<\/p>\n\n\n\n<p>A grandes rasgos, Views es un <strong>constructor visual de consultas sobre entidades<\/strong>. Te permite definir filtros, ordenaciones, formatos de salida y condiciones de visualizaci\u00f3n. Es tan flexible que termina siendo la base de muchas p\u00e1ginas, bloques, men\u00fas y hasta servicios web internos.<\/p>\n\n\n\n<p>Algunos de los tipos de presentaci\u00f3n que soporta Views:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>P\u00e1ginas<\/strong>: accesibles desde una URL concreta (como \/noticias).<\/li>\n\n\n\n<li><strong>Bloques<\/strong>: para mostrar en regiones del tema (por ejemplo, <em>\u201cArt\u00edculos m\u00e1s le\u00eddos\u201d<\/em>).<\/li>\n\n\n\n<li><strong>Feeds<\/strong>: ya sea RSS o JSON generados a partir de cualquier vista.<\/li>\n\n\n\n<li><strong>Embebidos<\/strong>: vistas dentro de otras vistas o formularios, usando m\u00f3dulos adicionales.<\/li>\n\n\n\n<li><strong>Endpoints<\/strong>: vistas expuestas como APIs personalizadas.<\/li>\n<\/ul>\n\n\n\n<p>Algunos ejemplos de casos pr\u00e1cticos que se pueden construir usando Views.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>P\u00e1gina de noticias con filtros por categor\u00eda o fecha.<\/li>\n\n\n\n<li>Calendario de eventos con detalles e informaci\u00f3n relacionada.<\/li>\n\n\n\n<li>Panel personalizado para usuarios logueados con contenido relacionado.<\/li>\n\n\n\n<li>Buscadores avanzados con filtros expuestos.<\/li>\n<\/ul>\n\n\n\n<p>Adicionalmente, Views incorpora aspectos importantes que lo hacen ideal para soluciones complejas, como son: <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Relaciones<\/strong>: puedes conectar entidades relacionadas (por ejemplo, mostrar el nombre del autor en una lista de nodos).<\/li>\n\n\n\n<li><strong>Acceso por roles o permisos<\/strong>: las vistas respetan el sistema de permisos de Drupal. Puedes limitar el acceso ya sea por roles, por permisos o incluso empleando reglas personalizadas. Especialmente \u00fatil cuando se trabaja con contenido no publicado o sensible.<\/li>\n\n\n\n<li><strong>Filtros contextuales<\/strong>: puedes filtrar el contenido que presentan las vistas dependiendo del <em>&#8220;contexto&#8221;<\/em> donde se muestran. Un ejemplo pr\u00e1ctico ser\u00eda mostrar un bloque con los contactos activos de un usuario o contenidos relacionados de la p\u00e1gina actual.<\/li>\n\n\n\n<li><strong>Cach\u00e9<\/strong>: cada vista tiene su propio sistema de cach\u00e9 configurable. Puedes definir el tiempo de expiraci\u00f3n, invalidar autom\u00e1ticamente si cambia contenido relacionado, y adaptar la cach\u00e9 por idioma, ruta o rol.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-componiendo-la-interfaz-bloques-y-regiones\">Componiendo la interfaz: bloques y regiones<\/h2>\n\n\n\n<p>Drupal te permite organizar visualmente el contenido mediante <a href=\"https:\/\/www.drupal.org\/docs\/core-modules-and-themes\/core-modules\/block-module\">bloques<\/a>, <strong>peque\u00f1as piezas funcionales<\/strong> que puedes colocar en distintas regiones del tema. Las regiones son zonas predefinidas en la plantilla (como cabecera, barra lateral, pie de p\u00e1gina\u2026), y los bloques pueden ubicarse en cualquiera de ellas seg\u00fan tus necesidades.<\/p>\n\n\n\n<p>Por ejemplo, un bloque puede ser:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Un men\u00fa de navegaci\u00f3n.<\/li>\n\n\n\n<li>Un formulario de b\u00fasqueda.<\/li>\n\n\n\n<li>Un listado de art\u00edculos recientes.<\/li>\n\n\n\n<li>Un banner promocional.<\/li>\n\n\n\n<li>Un bloque de bienvenida para usuarios logueados.<\/li>\n<\/ul>\n\n\n\n<p>La interfaz de administraci\u00f3n te permite asignar <strong>condiciones de visibilidad<\/strong> a cada bloque. Puedes configurar si un bloque aparece solo en determinadas p\u00e1ginas, para ciertos roles de usuario, en un idioma espec\u00edfico o dependiendo de si el visitante est\u00e1 autenticado.<\/p>\n\n\n\n<p>Esto hace que los bloques no solo sean elementos de dise\u00f1o, sino tambi\u00e9n herramientas clave para construir <strong>interfaces din\u00e1micas y personalizadas<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-separando-contenido-y-apariencia-el-sistema-de-temas\">Separando contenido y apariencia: el sistema de temas<\/h2>\n\n\n\n<p>Drupal separa completamente la l\u00f3gica del contenido y su presentaci\u00f3n visual mediante su sistema de theming. Esta separaci\u00f3n permite que dise\u00f1adores y desarrolladores trabajen en paralelo, y garantiza una mayor flexibilidad a largo plazo.<\/p>\n\n\n\n<p>El sistema de plantillas utiliza el motor Twig, un lenguaje de plantillas moderno, seguro y muy legible. Puedes sobrescribir cualquier parte del marcado HTML generado por Drupal y adaptar la salida a tu dise\u00f1o sin tocar la l\u00f3gica de backend.<\/p>\n\n\n\n<p>Drupal trae de serie dos temas modernos, amigables y accesibles:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Olivero: tema predeterminado para la parte p\u00fablica del sitio. Responsive, accesible y moderno.<\/li>\n\n\n\n<li>Claro: tema de administraci\u00f3n, centrado en la experiencia de usuario para editores y administradores.<\/li>\n<\/ul>\n\n\n\n<p>Puedes crear tus propios temas desde cero, o usar temas base como Classy o Stable para personalizaciones m\u00e1s r\u00e1pidas. Adem\u00e1s, puedes gestionar librer\u00edas CSS y JS para que solo se carguen donde realmente hacen falta.<\/p>\n\n\n\n<p>El resultado es un sistema visual limpio, eficiente y altamente configurable.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-extendiendo-capacidades-modulos-contribuidos-y-plugins\">Extendiendo capacidades: m\u00f3dulos contribuidos y plugins<\/h2>\n\n\n\n<p>Drupal se basa en una <strong>arquitectura modular<\/strong> que permite adaptar el sistema a casi cualquier necesidad. Adem\u00e1s de los m\u00f3dulos incluidos en el n\u00facleo (core), existe una amplia colecci\u00f3n de m\u00f3dulos contribuidos desarrollados por la comunidad. Estos m\u00f3dulos ampl\u00edan la funcionalidad del sitio, y su instalaci\u00f3n es tan sencilla como descargarlos usando <a href=\"https:\/\/www.drupal.org\/about\/starshot\/initiatives\/project-browser\">Project Browser<\/a>\u2014 que forma parte de Drupal CMS \u2014o a\u00f1adirlos v\u00eda Composer.<\/p>\n\n\n\n<p>Pero los m\u00f3dulos no son el \u00fanico mecanismo de extensi\u00f3n. Drupal cuenta tambi\u00e9n con un <a href=\"https:\/\/www.drupal.org\/docs\/drupal-apis\/plugin-api\">sistema interno de plugins<\/a>, una forma estructurada de definir componentes reutilizables que pueden ser detectados, cargados e intercambiados autom\u00e1ticamente por el sistema. Algunos ejemplos t\u00edpicos de plugins son:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Tipos de bloque.<\/li>\n\n\n\n<li>Tipos de campo.<\/li>\n\n\n\n<li>Estilos de vistas.<\/li>\n\n\n\n<li>M\u00e9todos de autenticaci\u00f3n.<\/li>\n\n\n\n<li>Formatos de texto o tipos de migraci\u00f3n.<\/li>\n<\/ul>\n\n\n\n<p>Este enfoque permite a los desarrolladores crear extensiones encapsuladas dentro de sus propios m\u00f3dulos sin tener que reescribir l\u00f3gica central. Los plugins hacen que el sistema sea m\u00e1s flexible, mantenible y extensible, especialmente en proyectos complejos.<\/p>\n\n\n\n<p>Algunos m\u00f3dulos contribuidos imprescindibles para quienes comienzan:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/dgo.to\/pathauto\">Pathauto<\/a>: genera URLs amigables autom\u00e1ticamente a partir del t\u00edtulo del contenido.<\/li>\n\n\n\n<li><a href=\"https:\/\/dgo.to\/admin_toolbar\">Admin Toolbar<\/a>: mejora la navegaci\u00f3n en el backend con men\u00fas desplegables.<\/li>\n\n\n\n<li><a href=\"https:\/\/dgo.to\/token\">Token<\/a>: ofrece variables din\u00e1micas reutilizables en campos, URLs y configuraciones.<\/li>\n\n\n\n<li><a href=\"https:\/\/dgo.to\/devel\">Devel<\/a>: herramientas para desarrollo y depuraci\u00f3n (muy \u00fatil en entornos locales).<\/li>\n\n\n\n<li><a href=\"https:\/\/dgo.to\/metatag\">Metatag<\/a>: gesti\u00f3n avanzada de metadatos para SEO.<\/li>\n\n\n\n<li><a href=\"https:\/\/dgo.to\/webform\">Webform<\/a>: construcci\u00f3n de formularios complejos y encuestas.<\/li>\n<\/ul>\n\n\n\n<p>Cada m\u00f3dulo o plugin que a\u00f1ades puede ampliar significativamente las posibilidades de tu sitio, pero tambi\u00e9n conviene revisar su mantenimiento, compatibilidad con tu versi\u00f3n de Drupal y comunidad activa.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-pensando-en-desarrollo-profesional-configuracion-y-despliegues\">Pensando en desarrollo profesional: configuraci\u00f3n y despliegues<\/h2>\n\n\n\n<p>Una diferencia clave entre Drupal y otros CMS es su <a href=\"https:\/\/www.drupal.org\/docs\/administering-a-drupal-site\/configuration-management\">sistema de gesti\u00f3n de configuraci\u00f3n<\/a>. Mientras que otros sistemas mezclan configuraci\u00f3n con contenido, Drupal permite exportar la configuraci\u00f3n del sitio (tipos de contenido, vistas, permisos, bloques, taxonom\u00edas\u2026) a archivos YAML.<\/p>\n\n\n\n<p>Esto tiene varias ventajas:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Puedes versionar la configuraci\u00f3n en Git.<\/li>\n\n\n\n<li>Puedes compartirla entre entornos (desarrollo, staging, producci\u00f3n).<\/li>\n\n\n\n<li>Puedes trabajar en equipo sin sobrescribir los cambios de otros.<\/li>\n<\/ul>\n\n\n\n<p>Por ejemplo, puedes crear un nuevo tipo de contenido en local, exportarlo con <code>drush config:export<\/code>, y luego aplicarlo en el entorno de producci\u00f3n con <code>drush config:import<\/code>.<\/p>\n\n\n\n<p>Este enfoque diferencia claramente:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Configuraci\u00f3n<\/strong>: versionable, exportable, controlada.<\/li>\n\n\n\n<li><strong>Contenido<\/strong>: din\u00e1mico, variable, gestionado por usuarios finales.<\/li>\n<\/ul>\n\n\n\n<p>En proyectos medianos o grandes, esta separaci\u00f3n es esencial para mantener <strong>control<\/strong>, <strong>seguridad<\/strong> y <strong>trazabilidad<\/strong>. Adem\u00e1s, se integra f\u00e1cilmente con flujos de despliegue automatizados (CI\/CD).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-anja-y-ahora\">Anja, \u00bfy ahora? <\/h2>\n\n\n\n<p>Si llegaste hasta aqu\u00ed sin conocer Drupal, ahora tienes una base firme sobre la que seguir aprendiendo. Y si ya ten\u00edas experiencia, esperamos haberte ayudado a estructurar mejor tus conocimientos.<\/p>\n\n\n\n<p>En este punto, el pr\u00f3ximo paso es un reto habitual: <a href=\"https:\/\/www.codemotion.com\/magazine\/es\/?p=33003\">c\u00f3mo migrar contenido desde otros sistemas hacia Drupal<\/a>.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Si has llegado hasta aqu\u00ed tras leer el art\u00edculo anterior, ya conoces por qu\u00e9 Drupal sigue siendo una tecnolog\u00eda relevante en 2025. Hablamos de su evoluci\u00f3n, su enfoque API-first, su seguridad y su potencial para proyectos exigentes. Pero ahora toca ir un paso m\u00e1s all\u00e1: entender c\u00f3mo funciona Drupal desde dentro. En este art\u00edculo vamos&#8230; <a class=\"more-link\" href=\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/primeros-pasos-con-drupal-conceptos-clave-y-arquitectura-base\/\">Read more<\/a><\/p>\n","protected":false},"author":328,"featured_media":32934,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[10606,10644,10648,10654],"tags":[],"collections":[12939,13315,11860],"class_list":{"0":"post-32990","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-backend-es","8":"category-desarrollo-web","9":"category-lenguajes-de-programacion","10":"category-open-source-es","11":"collections-desarrollo-web-es","12":"collections-drupal","13":"collections-php","14":"entry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.9 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Primeros pasos con Drupal: conceptos clave y arquitectura base - Codemotion Magazine<\/title>\n<meta name=\"description\" content=\"Recorreremos los cimientos del ecosistema Drupal: desde sus conceptos b\u00e1sicos y su modelo de datos, hasta su interfaz visual, sistema de presentaci\u00f3n, mecanismos de extensi\u00f3n y flujos de desarrollo profesional.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/primeros-pasos-con-drupal-conceptos-clave-y-arquitectura-base\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Primeros pasos con Drupal: conceptos clave y arquitectura base\" \/>\n<meta property=\"og:description\" content=\"Recorreremos los cimientos del ecosistema Drupal: desde sus conceptos b\u00e1sicos y su modelo de datos, hasta su interfaz visual, sistema de presentaci\u00f3n, mecanismos de extensi\u00f3n y flujos de desarrollo profesional.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/primeros-pasos-con-drupal-conceptos-clave-y-arquitectura-base\/\" \/>\n<meta property=\"og:site_name\" content=\"Codemotion Magazine\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Codemotion.Italy\/\" \/>\n<meta property=\"article:published_time\" content=\"2025-05-26T12:10:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-05-26T12:10:33+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-12-15.19.18-An-image-representing-the-concept-of-creating-REST-APIs-with-Django-REST-Framework-with-no-text-included.-The-scene-includes-a-modern-workspace-with-.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1792\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Dennis Torres Rodriguez\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:site\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Dennis Torres Rodriguez\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/primeros-pasos-con-drupal-conceptos-clave-y-arquitectura-base\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/primeros-pasos-con-drupal-conceptos-clave-y-arquitectura-base\/\"},\"author\":{\"name\":\"Dennis Torres Rodriguez\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/86fad8f766535345f8a09d7959bbc5b4\"},\"headline\":\"Primeros pasos con Drupal: conceptos clave y arquitectura base\",\"datePublished\":\"2025-05-26T12:10:31+00:00\",\"dateModified\":\"2025-05-26T12:10:33+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/primeros-pasos-con-drupal-conceptos-clave-y-arquitectura-base\/\"},\"wordCount\":2082,\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/primeros-pasos-con-drupal-conceptos-clave-y-arquitectura-base\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-12-15.19.18-An-image-representing-the-concept-of-creating-REST-APIs-with-Django-REST-Framework-with-no-text-included.-The-scene-includes-a-modern-workspace-with-.webp\",\"articleSection\":[\"Backend\",\"Desarrollo web\",\"Lenguajes de programaci\u00f3n\",\"Open source\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/primeros-pasos-con-drupal-conceptos-clave-y-arquitectura-base\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/primeros-pasos-con-drupal-conceptos-clave-y-arquitectura-base\/\",\"name\":\"Primeros pasos con Drupal: conceptos clave y arquitectura base - Codemotion Magazine\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/primeros-pasos-con-drupal-conceptos-clave-y-arquitectura-base\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/primeros-pasos-con-drupal-conceptos-clave-y-arquitectura-base\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-12-15.19.18-An-image-representing-the-concept-of-creating-REST-APIs-with-Django-REST-Framework-with-no-text-included.-The-scene-includes-a-modern-workspace-with-.webp\",\"datePublished\":\"2025-05-26T12:10:31+00:00\",\"dateModified\":\"2025-05-26T12:10:33+00:00\",\"description\":\"Recorreremos los cimientos del ecosistema Drupal: desde sus conceptos b\u00e1sicos y su modelo de datos, hasta su interfaz visual, sistema de presentaci\u00f3n, mecanismos de extensi\u00f3n y flujos de desarrollo profesional.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/primeros-pasos-con-drupal-conceptos-clave-y-arquitectura-base\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/primeros-pasos-con-drupal-conceptos-clave-y-arquitectura-base\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/primeros-pasos-con-drupal-conceptos-clave-y-arquitectura-base\/#primaryimage\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-12-15.19.18-An-image-representing-the-concept-of-creating-REST-APIs-with-Django-REST-Framework-with-no-text-included.-The-scene-includes-a-modern-workspace-with-.webp\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-12-15.19.18-An-image-representing-the-concept-of-creating-REST-APIs-with-Django-REST-Framework-with-no-text-included.-The-scene-includes-a-modern-workspace-with-.webp\",\"width\":1792,\"height\":1024},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/primeros-pasos-con-drupal-conceptos-clave-y-arquitectura-base\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Backend\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Primeros pasos con Drupal: conceptos clave y arquitectura base\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"name\":\"Codemotion Magazine\",\"description\":\"We code the future. Together\",\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\",\"name\":\"Codemotion\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"width\":225,\"height\":225,\"caption\":\"Codemotion\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Codemotion.Italy\/\",\"https:\/\/x.com\/CodemotionIT\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/86fad8f766535345f8a09d7959bbc5b4\",\"name\":\"Dennis Torres Rodriguez\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/9bd13561d39f288f4ae529b6c913853f5f0e1d4f72eee52278038a184b56a214?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/9bd13561d39f288f4ae529b6c913853f5f0e1d4f72eee52278038a184b56a214?s=96&d=mm&r=g\",\"caption\":\"Dennis Torres Rodriguez\"},\"description\":\"Soy un profesional del desarrollo de software con trayectoria consolidada en proyectos de gesti\u00f3n de contenidos y comercio electr\u00f3nico. Me apasiona transformar ideas en experiencias digitales eficientes y escalables. He contribuido a iniciativas de c\u00f3digo abierto y he participado como ponente y formador en conferencias, compartiendo buenas pr\u00e1cticas y experiencias. Adem\u00e1s, colaboro activamente en comunidades online como Stack Overflow y Drupal.org, ayudando a resolver desaf\u00edos t\u00e9cnicos y fomentando el aprendizaje colectivo.\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/author\/d70rr3s\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Primeros pasos con Drupal: conceptos clave y arquitectura base - Codemotion Magazine","description":"Recorreremos los cimientos del ecosistema Drupal: desde sus conceptos b\u00e1sicos y su modelo de datos, hasta su interfaz visual, sistema de presentaci\u00f3n, mecanismos de extensi\u00f3n y flujos de desarrollo profesional.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/primeros-pasos-con-drupal-conceptos-clave-y-arquitectura-base\/","og_locale":"en_US","og_type":"article","og_title":"Primeros pasos con Drupal: conceptos clave y arquitectura base","og_description":"Recorreremos los cimientos del ecosistema Drupal: desde sus conceptos b\u00e1sicos y su modelo de datos, hasta su interfaz visual, sistema de presentaci\u00f3n, mecanismos de extensi\u00f3n y flujos de desarrollo profesional.","og_url":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/primeros-pasos-con-drupal-conceptos-clave-y-arquitectura-base\/","og_site_name":"Codemotion Magazine","article_publisher":"https:\/\/www.facebook.com\/Codemotion.Italy\/","article_published_time":"2025-05-26T12:10:31+00:00","article_modified_time":"2025-05-26T12:10:33+00:00","og_image":[{"width":1792,"height":1024,"url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-12-15.19.18-An-image-representing-the-concept-of-creating-REST-APIs-with-Django-REST-Framework-with-no-text-included.-The-scene-includes-a-modern-workspace-with-.webp","type":"image\/webp"}],"author":"Dennis Torres Rodriguez","twitter_card":"summary_large_image","twitter_creator":"@CodemotionIT","twitter_site":"@CodemotionIT","twitter_misc":{"Written by":"Dennis Torres Rodriguez","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/primeros-pasos-con-drupal-conceptos-clave-y-arquitectura-base\/#article","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/primeros-pasos-con-drupal-conceptos-clave-y-arquitectura-base\/"},"author":{"name":"Dennis Torres Rodriguez","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/86fad8f766535345f8a09d7959bbc5b4"},"headline":"Primeros pasos con Drupal: conceptos clave y arquitectura base","datePublished":"2025-05-26T12:10:31+00:00","dateModified":"2025-05-26T12:10:33+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/primeros-pasos-con-drupal-conceptos-clave-y-arquitectura-base\/"},"wordCount":2082,"publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/primeros-pasos-con-drupal-conceptos-clave-y-arquitectura-base\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-12-15.19.18-An-image-representing-the-concept-of-creating-REST-APIs-with-Django-REST-Framework-with-no-text-included.-The-scene-includes-a-modern-workspace-with-.webp","articleSection":["Backend","Desarrollo web","Lenguajes de programaci\u00f3n","Open source"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/primeros-pasos-con-drupal-conceptos-clave-y-arquitectura-base\/","url":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/primeros-pasos-con-drupal-conceptos-clave-y-arquitectura-base\/","name":"Primeros pasos con Drupal: conceptos clave y arquitectura base - Codemotion Magazine","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/primeros-pasos-con-drupal-conceptos-clave-y-arquitectura-base\/#primaryimage"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/primeros-pasos-con-drupal-conceptos-clave-y-arquitectura-base\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-12-15.19.18-An-image-representing-the-concept-of-creating-REST-APIs-with-Django-REST-Framework-with-no-text-included.-The-scene-includes-a-modern-workspace-with-.webp","datePublished":"2025-05-26T12:10:31+00:00","dateModified":"2025-05-26T12:10:33+00:00","description":"Recorreremos los cimientos del ecosistema Drupal: desde sus conceptos b\u00e1sicos y su modelo de datos, hasta su interfaz visual, sistema de presentaci\u00f3n, mecanismos de extensi\u00f3n y flujos de desarrollo profesional.","breadcrumb":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/primeros-pasos-con-drupal-conceptos-clave-y-arquitectura-base\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/primeros-pasos-con-drupal-conceptos-clave-y-arquitectura-base\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/primeros-pasos-con-drupal-conceptos-clave-y-arquitectura-base\/#primaryimage","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-12-15.19.18-An-image-representing-the-concept-of-creating-REST-APIs-with-Django-REST-Framework-with-no-text-included.-The-scene-includes-a-modern-workspace-with-.webp","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-12-15.19.18-An-image-representing-the-concept-of-creating-REST-APIs-with-Django-REST-Framework-with-no-text-included.-The-scene-includes-a-modern-workspace-with-.webp","width":1792,"height":1024},{"@type":"BreadcrumbList","@id":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/primeros-pasos-con-drupal-conceptos-clave-y-arquitectura-base\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.codemotion.com\/magazine\/"},{"@type":"ListItem","position":2,"name":"Backend","item":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/"},{"@type":"ListItem","position":3,"name":"Primeros pasos con Drupal: conceptos clave y arquitectura base"}]},{"@type":"WebSite","@id":"https:\/\/www.codemotion.com\/magazine\/#website","url":"https:\/\/www.codemotion.com\/magazine\/","name":"Codemotion Magazine","description":"We code the future. Together","publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.codemotion.com\/magazine\/#organization","name":"Codemotion","url":"https:\/\/www.codemotion.com\/magazine\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","width":225,"height":225,"caption":"Codemotion"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Codemotion.Italy\/","https:\/\/x.com\/CodemotionIT"]},{"@type":"Person","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/86fad8f766535345f8a09d7959bbc5b4","name":"Dennis Torres Rodriguez","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/9bd13561d39f288f4ae529b6c913853f5f0e1d4f72eee52278038a184b56a214?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/9bd13561d39f288f4ae529b6c913853f5f0e1d4f72eee52278038a184b56a214?s=96&d=mm&r=g","caption":"Dennis Torres Rodriguez"},"description":"Soy un profesional del desarrollo de software con trayectoria consolidada en proyectos de gesti\u00f3n de contenidos y comercio electr\u00f3nico. Me apasiona transformar ideas en experiencias digitales eficientes y escalables. He contribuido a iniciativas de c\u00f3digo abierto y he participado como ponente y formador en conferencias, compartiendo buenas pr\u00e1cticas y experiencias. Adem\u00e1s, colaboro activamente en comunidades online como Stack Overflow y Drupal.org, ayudando a resolver desaf\u00edos t\u00e9cnicos y fomentando el aprendizaje colectivo.","url":"https:\/\/www.codemotion.com\/magazine\/author\/d70rr3s\/"}]}},"featured_image_src":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-12-15.19.18-An-image-representing-the-concept-of-creating-REST-APIs-with-Django-REST-Framework-with-no-text-included.-The-scene-includes-a-modern-workspace-with--600x400.webp","featured_image_src_square":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-12-15.19.18-An-image-representing-the-concept-of-creating-REST-APIs-with-Django-REST-Framework-with-no-text-included.-The-scene-includes-a-modern-workspace-with--600x600.webp","author_info":{"display_name":"Dennis Torres Rodriguez","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/d70rr3s\/"},"uagb_featured_image_src":{"full":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-12-15.19.18-An-image-representing-the-concept-of-creating-REST-APIs-with-Django-REST-Framework-with-no-text-included.-The-scene-includes-a-modern-workspace-with-.webp",1792,1024,false],"thumbnail":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-12-15.19.18-An-image-representing-the-concept-of-creating-REST-APIs-with-Django-REST-Framework-with-no-text-included.-The-scene-includes-a-modern-workspace-with--150x150.webp",150,150,true],"medium":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-12-15.19.18-An-image-representing-the-concept-of-creating-REST-APIs-with-Django-REST-Framework-with-no-text-included.-The-scene-includes-a-modern-workspace-with--300x171.webp",300,171,true],"medium_large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-12-15.19.18-An-image-representing-the-concept-of-creating-REST-APIs-with-Django-REST-Framework-with-no-text-included.-The-scene-includes-a-modern-workspace-with--768x439.webp",768,439,true],"large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-12-15.19.18-An-image-representing-the-concept-of-creating-REST-APIs-with-Django-REST-Framework-with-no-text-included.-The-scene-includes-a-modern-workspace-with--1024x585.webp",1024,585,true],"1536x1536":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-12-15.19.18-An-image-representing-the-concept-of-creating-REST-APIs-with-Django-REST-Framework-with-no-text-included.-The-scene-includes-a-modern-workspace-with--1536x878.webp",1536,878,true],"2048x2048":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-12-15.19.18-An-image-representing-the-concept-of-creating-REST-APIs-with-Django-REST-Framework-with-no-text-included.-The-scene-includes-a-modern-workspace-with-.webp",1792,1024,false],"small-home-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-12-15.19.18-An-image-representing-the-concept-of-creating-REST-APIs-with-Django-REST-Framework-with-no-text-included.-The-scene-includes-a-modern-workspace-with--100x100.webp",100,100,true],"sidebar-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-12-15.19.18-An-image-representing-the-concept-of-creating-REST-APIs-with-Django-REST-Framework-with-no-text-included.-The-scene-includes-a-modern-workspace-with--180x128.webp",180,128,true],"genesis-singular-images":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-12-15.19.18-An-image-representing-the-concept-of-creating-REST-APIs-with-Django-REST-Framework-with-no-text-included.-The-scene-includes-a-modern-workspace-with--896x504.webp",896,504,true],"archive-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-12-15.19.18-An-image-representing-the-concept-of-creating-REST-APIs-with-Django-REST-Framework-with-no-text-included.-The-scene-includes-a-modern-workspace-with--400x225.webp",400,225,true],"gb-block-post-grid-landscape":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-12-15.19.18-An-image-representing-the-concept-of-creating-REST-APIs-with-Django-REST-Framework-with-no-text-included.-The-scene-includes-a-modern-workspace-with--600x400.webp",600,400,true],"gb-block-post-grid-square":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-05-12-15.19.18-An-image-representing-the-concept-of-creating-REST-APIs-with-Django-REST-Framework-with-no-text-included.-The-scene-includes-a-modern-workspace-with--600x600.webp",600,600,true]},"uagb_author_info":{"display_name":"Dennis Torres Rodriguez","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/d70rr3s\/"},"uagb_comment_info":0,"uagb_excerpt":"Si has llegado hasta aqu\u00ed tras leer el art\u00edculo anterior, ya conoces por qu\u00e9 Drupal sigue siendo una tecnolog\u00eda relevante en 2025. Hablamos de su evoluci\u00f3n, su enfoque API-first, su seguridad y su potencial para proyectos exigentes. Pero ahora toca ir un paso m\u00e1s all\u00e1: entender c\u00f3mo funciona Drupal desde dentro. En este art\u00edculo vamos&#8230;&hellip;","lang":"es","_links":{"self":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/32990","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/users\/328"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/comments?post=32990"}],"version-history":[{"count":2,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/32990\/revisions"}],"predecessor-version":[{"id":33163,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/32990\/revisions\/33163"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media\/32934"}],"wp:attachment":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media?parent=32990"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/categories?post=32990"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/tags?post=32990"},{"taxonomy":"collections","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/collections?post=32990"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}