Atualmente, no desenvolvimento web, a separação dos sistemas de frontend e backend ganhou destaque significativo, dando origem a sites headless.

Tradicionalmente, os sistemas de gerenciamento de conteúdo (CMSs) sempre foram integrados, mas isso vinha com muitas limitações, como flexibilidade e escalonamento restritos. No entanto, os CMSs headless modernos capacitam os desenvolvedores a separar o frontend, construído com qualquer framework, do backend por meio de um CMS headless.

O que é um CMS headless?

Um CMS headless é um sistema de gerenciamento de conteúdo especializado que gerencia exclusivamente o backend do seu site. Diferentemente dos CMSs tradicionais, ele não determina como o conteúdo aparece no frontend. Em vez disso, ele fornece uma API (Interface de Programação de Aplicativos) para que os desenvolvedores recuperem e forneçam conteúdo para qualquer dispositivo ou plataforma.

Atualmente, existem várias plataformas de CMS headless. Entretanto, fazer a transição do seu conteúdo do WordPress, com o qual você já está familiarizado, pode parecer desnecessário. Felizmente, há uma alternativa: o WordPress headless.

WordPress headless

O WordPress, em sua forma tradicional, não é inerentemente um CMS headless. O WordPress é um CMS popular e avançado, conhecido por sua facilidade de uso e flexibilidade na criação e no gerenciamento de conteúdo. No entanto, tradicionalmente, combina o gerenciamento de conteúdo e a forma como ele é apresentado em um único sistema.

Hoje em dia, os desenvolvedores criaram implementações do WordPress headless utilizando sua REST API. Nesses casos, o WordPress ainda funciona como o CMS onde você cria, gerencia e armazena conteúdo. No entanto, ao invés de renderizar o frontend ou o site diretamente através dos templates e temas de WordPress, a apresentação do frontend é desacoplada ou separada do backend.

Isso permite que os desenvolvedores construam aplicativos usando diferentes tecnologias e frameworks, enquanto ainda aproveitam as capacidades de gerenciamento de conteúdo do WordPress. É uma maneira de fazer o WordPress funcionar de forma mais headless, embora não seja a configuração padrão.

Este artigo explora duas abordagens para buscar dados do seu CMS WordPress headless para o seu framework de frontend, focando em dois métodos principais: WPGraphQL e REST API.

Arquitetura de como o WordPress headless funciona.
Arquitetura de como o WordPress headless funciona.

Entendendo a REST API para WordPress Headless

A API REST é um pilar fundamental no desenvolvimento do WordPress que facilita a recuperação de dados no formato JSON. Desde o WordPress 4.7, ela foi incorporada ao WordPress e não requer nenhum plugin para funcionar.

Ela proporciona acesso aos dados do conteúdo do seu site e implementa as mesmas restrições de autenticação — conteúdo que é público no seu site geralmente é acessível publicamente via REST API, enquanto conteúdo privado, conteúdo protegido por senha, usuários internos, tipos de artigos personalizados e metadados só estão disponíveis com autenticação ou se você especificamente configurar para que seja assim.

Para obter seus dados do WordPress em um formato JSON, adicione /wp-json ao URL do site do WordPress:

http://yoursite.com/wp-json

Se a API JSON não estiver ativada quando você visitar http://yoursite.com/wp-json por padrão, você poderá ativá-la abrindo Permalinks em WordPress Settings e selecionando Post Name ou qualquer outro de sua escolha, exceto Plain:

Como configurar a API REST do WordPress sem cabeçalho.
Como configurar a API REST do WordPress headless.

Isso funciona para sites locais e públicos do WordPress, oferecendo endpoints para artigos, páginas, comentários, mídia, 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

Há mais coisas que você pode fazer com a API REST. Leia nosso guia completo para saber mais.

Explorando o WPGraphQL para o WordPress Headless

Em 2012, o Facebook apresentou o GraphQL, uma abordagem revolucionária para a recuperação de dados em APIs. Sua natureza declarativa e a busca seletiva de dados proporcionaram uma alternativa robusta às APIs REST tradicionais.

Em 2015, Jason Bahl reconheceu a demanda por uma solução que combinasse a flexibilidade do GraphQL com os recursos de conteúdo do WordPress e lançou o WPGraphQL, uma inovação para os desenvolvedores WordPress.

O WPGraphQL é um plugin baseado em GraphQL que oferece uma abordagem mais eficiente e personalizada para a consulta de dados. Ele apresenta um único endpoint, permitindo a recuperação precisa de dados e reduzindo os problemas de busca excessiva predominantes na API REST.

Como usar o WPGraphQL

Para usar o WPGraphQL, siga estas etapas:

  1. Instale o plugin WPGraphQL: Comece instalando o plugin WPGraphQL em seu site WordPress. Você pode fazer isso por meio do painel do WordPress ou baixando do repositório oficial de plugins do WordPress.

    Plug-in WpGraphQL no mercado do WP.
    Plugin WpGraphQL no mercado do WP.

  2. Explore o GraphQL Playground: Depois de instalado, o WPGraphQL oferece um GraphQL Playground integrado. Para acessá-lo, navegue até a aba GraphQL no painel do WordPress:
    Explorando o GraphQL IDE no WordPress.
    Explorando o GraphQL IDE no WordPress.

    O playground permite que você explore o esquema, execute consultas e teste mutações de forma interativa.

  3. Crie suas consultas: Utilize o poder do GraphQL criando consultas adaptadas às necessidades específicas de dados que você tem. Aproveite o esquema autodocumentado para entender os dados e as relações disponíveis.

    Obtenha dados de posts do WordPress com o WPGraphQL.
    Obtenha dados de artigos do WordPress com o WPGraphQL.

Agora você pode integrar o WPGraphQL ao seu aplicativo frontend, seja ele criado com React, Vue ou qualquer outro framework, usando um único endpoint do GraphQL para buscar dados com eficiência e atualizar a interface do usuário dinamicamente.

Principais recursos do WPGraphQL

O WPGraphQL tem os principais recursos para que você tenha uma experiência de recuperação de dados otimizada e direcionada, conforme mostrado abaixo.

Endpoint único para recuperação precisa de dados

O WPGraphQL fornece um endpoint unificado, normalmente /graphql, permitindo que você recupere dados específicos com eficiência. Isso contrasta com a API REST, em que você precisa de vários endpoints para coletar as mesmas informações.

No caso da API REST, suponha que você queira recuperar detalhes sobre uma publicação específica e seus comentários. Você precisa fazer várias solicitações a diferentes endpoints, por exemplo:

Para obter informações sobre um artigo:

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

Para obter comentários relacionados ao artigo:

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

Por outro lado, com o WPGraphQL, você pode obter o mesmo resultado com uma única consulta focada:

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

Neste exemplo, a consulta GraphQL é enviada a um único endpoint. A consulta especifica que você deseja obter informações sobre o artigo com ID “123”, incluindo seu título, conteúdo e comentários associados. O WPGraphQL processa essa consulta e retorna uma resposta contendo exatamente os dados que solicitamos, tudo de uma só vez.

Consultas direcionadas para uma recuperação eficiente

Com o GraphQL, você pode criar consultas específicas adaptadas às suas necessidades. Isso permite que você solicite apenas os dados necessários, minimizando a busca excessiva.

Suponha que você queira recuperar alguns detalhes (título, autor e data) sobre todos os artigos. A API REST não pode fazer isso. Para recuperar esses detalhes, você precisaria usar um endpoint como este:

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

Esse endpoint recupera todo o conjunto de dados de todos os artigos, incluindo conteúdo, categorias e dados associados. Com o WPGraphQL, você pode criar uma consulta direcionada para obter apenas os dados específicos de que precisa:

{
  posts {
    title
    date
    author {
      name
    }
  }
}

Neste exemplo, a consulta GraphQL foi criada para recuperar detalhes sobre os artigos. No entanto, solicitamos apenas o título, a data e o nome do autor. O WPGraphQL permite que você solicite apenas os campos do seu interesse, resultando em uma resposta mais eficiente e leve.

Vários recursos raiz

No WPGraphQL, você pode consultar vários recursos raiz em uma única solicitação, o que o torna flexível e eficiente:

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

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

Escolhendo o frontend ideal para o WordPress Headless

Ao embarcar na jornada de uma configuração do WordPress headless, uma das decisões críticas que você enfrenta é a seleção do cabeçalho ideal: a tecnologia de frontend que alimentará sua interface de usuário e ditará a experiência do usuário.

Essa decisão é muito importante, pois afeta diretamente o desempenho, a escalabilidade e a capacidade de manutenção do seu aplicativo web. Vários frameworks e tecnologias de frontend são compatíveis com o WordPress headless, cada uma com seus pontos fortes e considerações.

Por exemplo, você pode escolher um Gerador de Site Estático (SSG) e implantá-lo gratuitamente na Hospedagem de Site Estático da Kinsta, assim você só precisa se preocupar em hospedar o WordPress (o backend) e aproveitar a hospedagem gratuita para o head (frontend).

Da mesma forma, você também pode usar uma abordagem mais robusta, por exemplo, usando uma biblioteca JavaScript como o React para alimentar seu frontend e manter o WordPress processando o backend.

Resumo

Tanto o WPGraphQL quanto a API REST oferecem maneiras eficientes de obter dados de um CMS WordPress headless e integrá-los perfeitamente aos aplicativos de frontend. A escolha entre os dois depende das necessidades específicas do seu projeto e da abordagem de recuperação de dados que você preferir.

Se optar pela API REST, você terá acesso a uma solução integrada no WordPress, facilitando a recuperação de dados no formato JSON. Por outro lado, o WPGraphQL oferece uma abordagem mais moderna e eficiente, aproveitando o poder do GraphQL.

Como a tendência headless continua a evoluir, os desenvolvedores podem escolher a ferramenta que melhor se alinha ao seu fluxo de trabalho e às metas do projeto, garantindo uma integração perfeita e eficiente entre o WordPress e o framework de frontend de sua escolha.

Na Kinsta, criar e gerenciar seu WordPress (backend) é muito fácil com nossa hospedagem especializada em WordPress. Ela tem recursos valiosos, incluindo Edge Caching, backups de sites, certificados SSL Cloudflare gratuitos, Kinsta CDN e muito mais.

Além disso, você pode implantar seu frontend usando nossa Hospedagem de Aplicativos ou Hospedagem de Site Estático para SSGs. Essa abordagem unificada permite que tanto o frontend quanto o backend sejam prontamente hospedados e acessados por meio de um único painel.

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.