En el desarrollo web actual, la separación de los sistemas frontend y backend ha ganado mucha tracción, dando lugar a los sitios web sin cabecera (headless).

Tradicionalmente, los Sistemas de Gestión de Contenidos (CMS) siempre han estado unidos, pero eso conllevaba muchas limitaciones, como una flexibilidad y escalabilidad restringidas. Sin embargo, los CMS headless modernos permiten a los desarrolladores separar el frontend, construido con cualquier framework, del backend mediante un CMS headless.

¿Qué Es un CMS Headless?

Un CMS Headless es un sistema de gestión de contenidos especializado que gestiona exclusivamente el backend de tu sitio. A diferencia de los CMS tradicionales, no dicta cómo aparece el contenido en el frontend. En su lugar, proporciona una Interfaz de Programación de Aplicaciones (API) para que los desarrolladores recuperen y entreguen contenidos a cualquier dispositivo o plataforma.

Hoy en día existen numerosas plataformas de CMS headless. Sin embargo, la transición de tu contenido desde WordPress, con el que ya estás familiarizado, puede parecer innecesaria. Afortunadamente, existe una alternativa: WordPress headless.

WordPress Headless

WordPress, en su forma tradicional, no es intrínsecamente un CMS headless. WordPress es un CMS popular y potente, conocido por su facilidad de uso y flexibilidad en la creación y gestión de contenidos. Sin embargo, tradicionalmente combina la gestión de contenidos y su presentación en un único sistema.

Hoy en día, los desarrolladores han creado implementaciones headless de WordPress utilizando su API REST. En estos casos, WordPress sigue funcionando como el CMS donde creas, gestionas y almacenas contenidos. Sin embargo, en lugar de renderizar el frontend o el sitio web directamente a través de temas y plantillas de WordPress, la presentación del frontend se desacopla o separa del backend.

Esto permite a los desarrolladores crear aplicaciones utilizando diferentes tecnologías y frameworks, sin dejar de aprovechar las conocidas capacidades de gestión de contenidos de WordPress. Es una forma de hacer que WordPress funcione headless, aunque no sea la configuración por defecto.

Este artículo explora dos enfoques para obtener datos de tu CMS WordPress headless en tu framework frontend, centrándose en dos métodos principales: WPGraphQL y la API REST.

Arquitectura del funcionamiento de WordPress headless
Arquitectura del funcionamiento de WordPress headless.

Comprender la API REST para WordPress Headless

La API REST es un pilar fundamental en el desarrollo de WordPress que facilita la recuperación de datos en formato JSON. Desde WordPress 4.7, está integrada en WordPress y no requiere ningún plugin para funcionar.

Proporciona acceso de datos al contenido de tu sitio e implementa las mismas restricciones de autenticación — el contenido que es público en tu sitio es generalmente accesible públicamente a través de la API REST, mientras que el contenido privado, el contenido protegido por contraseña, los usuarios internos, los tipos de entrada personalizados y los metadatos sólo están disponibles con autenticación o si así lo configuras específicamente.

Para obtener tus datos de WordPress en formato JSON, añade /wp-json a la URL de tu sitio de WordPress:

http://yoursite.com/wp-json

Si la API JSON no está activada cuando visitas http://yoursite.com/wp-json por defecto, puedes activarla abriendo tus Permalinks en Ajustes de WordPress y seleccionando Nombre de la Entrada o cualquier otro de tu elección excepto Plano:

Cómo configurar la API REST de WordPress headless.
Cómo configurar la API REST de WordPress headless.

Esto funciona para sitios WordPress locales y públicos, ofreciendo endpoints  para entradas, páginas, comentarios, medios, etc.

http://yoursite.com/wp-json/wp/v2/posts
http://yoursite.com/wp-json/wp/v2/comments
http://yoursite.com/wp-json/wp/v2/media

Hay más cosas que puedes hacer con la API REST. Lee nuestra guía completa para saber más.

Explorar WPGraphQL para WordPress Headless

En 2012, Facebook introdujo GraphQL, un enfoque revolucionario para la recuperación de datos a través de las API. Su naturaleza declarativa y la obtención selectiva de datos proporcionaron una alternativa sólida a las API REST tradicionales.

En 2015, Jason Bahl reconoció la demanda de una solución que combinara la flexibilidad de GraphQL con las capacidades de contenido de WordPress y lanzó WPGraphQL, un cambio de juego para los desarrolladores de WordPress.

WPGraphQL es un plugin basado en GraphQL que ofrece un enfoque más eficiente y adaptado a la consulta de datos. Presenta un único endpoint, lo que permite una recuperación precisa de los datos y reduce los problemas de sobrecarga frecuentes en la API REST.

Cómo Utilizar WPGraphQL

Para utilizar WPGraphQL, sigue estos pasos:

  1. Instala el Plugin WPGraphQL: Empieza por instalar el plugin WPGraphQL en tu sitio de WordPress. Puedes hacerlo a través del panel de control de WordPress o descargándolo del repositorio oficial de plugins de WordPress.

    Plugin WpGraphQL en el marketplace de WP.
    Plugin WpGraphQL en el marketplace de WP.

  2. Explora el Playground de GraphQL: Una vez instalado, WPGraphQL proporciona un GraphQL Playground integrado. Para acceder a él, ve a la pestaña GraphQL de tu panel de control de WordPress:
    Explorar el IDE de GraphQL en WordPress.
    Explorar el IDE de GraphQL en WordPress.

    El playground te permite explorar el esquema, ejecutar consultas y probar mutaciones de forma interactiva.

  3. Elabora tus Consultas: Utiliza la potencia de GraphQL elaborando consultas adaptadas a tus requisitos de datos específicos. Aprovecha el esquema autodocumentado para comprender los datos y las relaciones disponibles.

    Obtén datos de entradas de WordPress con WPGraphQL.
    Obtén datos de entradas de WordPress con WPGraphQL.

Ahora puedes integrar WPGraphQL en tu aplicación frontend, ya esté construida con React, Vue o cualquier otro framework, utilizando un único endpoint GraphQL para obtener datos de forma eficiente y actualizar tu interfaz de usuario dinámicamente.

Características Principales de WPGraphQL

WPGraphQL tiene características clave para una experiencia de recuperación de datos racionalizada y precisa, como se muestra a continuación.

Un Único Endpoint para una Recuperación de Datos Precisa

WPGraphQL proporciona un endpoint unificado, normalmente /graphql, que te permite recuperar datos específicos de forma eficaz. Esto contrasta con la API REST, en la que necesitas varios endpoints para obtener la misma información.

En el caso de la API REST, supón que quieres recuperar detalles sobre una entrada concreta y sus comentarios. Necesitas hacer varias peticiones a diferentes endpoints, por ejemplo:

Para obtener información sobre un post:

http://yoursite.com/wp-json/wp/v2/posts/123

Para obtener comentarios relacionados con la entrada:

http://yoursite.com/wp-json/wp/v2/comments?post=123

En cambio, con WPGraphQL, puedes conseguir el mismo resultado con una sola consulta centrada:

{
  post(id: "123") {
    title
    content
    comments {
      edges {
        node {
          content
        }
      }
    }
  }
}

En este ejemplo, la consulta GraphQL se envía a un único endpoint. La consulta especifica que queremos información sobre el post con ID «123», incluyendo su título, contenido y comentarios asociados. WPGraphQL procesa esta consulta y devuelve una respuesta que contiene precisamente los datos que solicitamos, todo de una sola vez.

Consultas Específicas para una Recuperación Eficiente

Con GraphQL, puedes elaborar consultas específicas adaptadas a tus necesidades. Esto te permite solicitar sólo los datos necesarios, minimizando la sobrecarga.

Supongamos que quieres recuperar unos pocos detalles (título, autor y fecha) sobre todas las entradas. La API REST no puede hacerlo. Para recuperar estos detalles, tendrías que utilizar un endpoint como éste:

http://yoursite.com/wp-json/wp/v2/posts

Este endpoint recupera todo el conjunto de datos de todas las entradas, incluido el contenido, las categorías y los datos asociados. Con WPGraphQL, puedes elaborar una consulta específica para obtener sólo los datos que necesites:

{
  posts {
    title
    date
    author {
      name
    }
  }
}

En este ejemplo, la consulta GraphQL está diseñada para recuperar detalles sobre las entradas. Sin embargo, sólo pedimos el título, la fecha y el nombre del autor. WPGraphQL te permite solicitar sólo los campos que te interesan, lo que resulta en una respuesta más eficiente y ligera.

Múltiples Recursos Raíz

En WPGraphQL, puedes consultar múltiples recursos raíz en una sola petición, lo que lo hace flexible y eficiente:

{
  posts {
    edges {
      node {
        title
        content
      }
    }
  }

  pages {
    edges {
      node {
        title
        content
      }
    }
  }
}

Eligiendo la Cabeza Ideal para WordPress Headless

Al embarcarte en el viaje de la configuración de un WordPress headless, una de las decisiones críticas a las que te enfrentas es la selección de la cabeza ideal — la tecnología frontend que impulsará tu interfaz de usuario y dictará la experiencia del usuario.

Esta decisión tiene una importancia inmensa, ya que afecta directamente al rendimiento, la escalabilidad y la capacidad de mantenimiento de tu aplicación web. Existen varios frameworks y tecnologías frontend compatibles con WordPress headless, cada uno con sus puntos fuertes y sus consideraciones.

Por ejemplo, puedes elegir un Generador de Sitios Estáticos (SSG) y desplegarlo en el Alojamiento de Sitios Estáticos de Kinsta de forma gratuita, de modo que sólo tengas que preocuparte de alojar WordPress (el backend) y disfrutar de alojamiento gratuito para el head (frontend).

Del mismo modo, también puedes utilizar un enfoque más potente, por ejemplo, utilizando una biblioteca JavaScript como React para potenciar tu frontend y mantener WordPress procesando el backend.

Resumen

Tanto WPGraphQL como la API REST ofrecen formas potentes de obtener datos de un CMS WordPress headless e integrarlos sin problemas en las aplicaciones frontend. La elección entre ambos depende de las necesidades específicas de tu proyecto y del enfoque de recuperación de datos que prefieras.

Si optas por la API REST, accederás a una solución integrada en WordPress, que facilita la recuperación de datos en formato JSON. Por otro lado, WPGraphQL proporciona un enfoque más moderno y eficiente, aprovechando la potencia de GraphQL.

A medida que la tendencia headless sigue evolucionando, los desarrolladores pueden elegir la herramienta que mejor se adapte a su flujo de trabajo y a los objetivos de su proyecto, garantizando una integración fluida y eficiente entre WordPress y el framework frontend de su elección.

En Kinsta, crear y gestionar tu WordPress (backend) es pan comido con nuestro Alojamiento WordPress especializado. Dispone de valiosas funciones, como edge caching, copias de seguridad del sitio, certificados SSL Cloudflare gratuitos, CDN de Kinsta y mucho más.

Además, puedes desplegar tu frontend utilizando nuestro Alojamiento de Aplicaciones o Alojamiento de Sitios Estáticos para SSG. Este enfoque unificado permite alojar y acceder fácilmente a tu frontend y backend a través de un único panel de control.

Joel Olawanle Kinsta

Joel is a Frontend developer working at Kinsta as a Technical Editor. He is a passionate teacher with love for open source and has written over 200 technical articles majorly around JavaScript and it's frameworks.