No primeiro dia, falamos sobre o que é o WordPress Headless e os motivos para usá-lo. Agora vamos mergulhar na REST API do WordPress, que será o coração da nossa comunicação entre o backend (WordPress) e o frontend (React, Next.js, Vue, etc.).
A REST API permite que aplicativos externos interajam com os dados do WordPress de forma padronizada, segura e escalável, usando HTTP e JSON.
🧠 O que é a REST API do WordPress?
A REST API é um conjunto de endpoints HTTP que expõem os dados do WordPress (posts, páginas, categorias, usuários, mídia, etc.) em formato JSON.
Por exemplo, para buscar os posts de um site:
GET https://seudominio.com/wp-json/wp/v2/posts
Ela está disponível por padrão desde o WordPress 4.7 e segue o padrão RESTful, permitindo ações como GET, POST, PUT, DELETE.
🔑 Estrutura e Endpoints Nativos
Os principais endpoints disponíveis são:
- Posts:
/wp/v2/posts
- Páginas:
/wp/v2/pages
- Categorias:
/wp/v2/categories
- Tags:
/wp/v2/tags
- Usuários:
/wp/v2/users
- Mídia:
/wp/v2/media
- Menus (com plugin REST Menus):
/wp/v2/menus
- Custom Post Types:
/wp/v2/{custom_post_type}
Além disso, a raiz da API fornece uma visão geral dos recursos disponíveis:
GET https://seudominio.com/wp-json/
🛡️ Autenticação e Permissões
Por padrão, a API permite acesso apenas a dados públicos (posts publicados, por exemplo). Para operações de escrita, é necessário autenticar com:
- Basic Auth (em ambiente local)
- JWT (JSON Web Token) – recomendado para produção
- OAuth – mais complexo, para integrações robustas
Veremos a implementação prática disso nos próximos dias. 😉
🧩 Custom Post Types e Taxonomias
A REST API suporta não só os tipos nativos, mas também Custom Post Types (CPTs) e taxonomias personalizadas.
Você precisa garantir que o CPT esteja registrado com show_in_rest => true
:
register_post_type('meu_cpt', [
'label' => 'Meu CPT',
'public' => true,
'show_in_rest' => true,
'supports' => ['title', 'editor', 'thumbnail'],
]);
🚦 Fluxo Básico de Uso
1️⃣ Identificar o recurso desejado
Ex: /wp/v2/posts
, /wp/v2/media
.
2️⃣ Enviar requisição HTTP
GET, POST, PUT, DELETE (com headers adequados).
3️⃣ Tratar a resposta JSON
No frontend (React, Next.js, etc.), tratar o JSON recebido.
4️⃣ Autenticação (se necessário)
Usar JWT ou outra estratégia para operações privadas.
🏗️ Vamos construir na prática!
Nos próximos dias, vamos:
- Criar um frontend que consome essa API
- Integrar com ACF para campos personalizados
- Adicionar autenticação e segurança
- Criar endpoints customizados para expandir a API