Tutorial API REST WordPress: Saiba Como Configurar e Usar

A API REST do WordPress é uma interface que permite que o sistema de gerenciamento de conteúdo (CMS) troque dados com serviços de terceiros. Ela permite que você acesse o conteúdo diretamente do banco de dados, resultando em uma integração perfeita.

Você pode usar a API REST, por exemplo, para desenvolver um aplicativo personalizado que usa os dados ou a funcionalidade do WordPress. Por exemplo, você pode configurar um WordPress headless para criar um site com base em uma estrutura moderna, como o React, sobre o painel de administração.

Neste tutorial sobre a API REST WordPress, explicaremos como essa ferramenta funciona e como usá-la. Você também aprenderá sobre seus usos mais comuns e as práticas recomendadas para garantir um desenvolvimento eficiente. Vamos lá?

A API REST do WordPress é uma interface que permite integrar o CMS a outros aplicativos. Ela permite que você desenvolva software ou sites que usam dados, funcionalidade e conteúdo do WordPress sem precisar acessá-los diretamente.

A WordPress REST API funciona fornecendo endpoints que recuperam e manipulam o conteúdo como dados JSON para garantir a compatibilidade, independentemente das linguagens de programação utilizadas.

Como Funciona a API REST do WordPress

Uma interface de programação de aplicativos (API) fornece um conjunto de regras que permite a interação entre dois serviços da web. Enquanto isso, REST significa Representational State Transfer, um padrão arquitetônico que define essas comunicações.

Um aplicativo web que adere aos princípios REST é considerado RESTful. Por exemplo, ele deve usar uma interface uniforme, fornecendo um único ponto de acesso para permitir que outros aplicativos acessem seus dados.

Para trocar dados, a API REST envia ao banco de dados do WordPress uma solicitação, que é um conjunto de instruções especificando as informações de que seu aplicativo precisa. Em troca, ele envia uma resposta contendo o conteúdo e a confirmação de que o processo foi bem-sucedido.

Seu aplicativo ou cliente usa rotas para determinar quais dados devem ser recuperados. As rotas são URLs que localizam conteúdo específico por meio da API REST do WP, como publicações ou metadados do WordPress. Por exemplo, a rota abaixo permite que você acesse páginas:

http://seudominio.com/wp-json/wp/v2/pages

Essas rotas acessarão as funções de endpoint na API REST do WP que manipulam os dados solicitados. Você pode recuperar, adicionar, editar ou remover as informações, dependendo dos métodos do protocolo HTTP:

  • GET – obtém dados do servidor.
  • POST – insere novos dados no banco de dados.
  • PUT – modifica dados existentes.
  • DELETE – remove o conteúdo do banco de dados.

Todos os dados recuperados serão exibidos no formato JSON, o que significa que você deve analisá-los antes de passá-los para outro código.

Como Configurar seu Ambiente Para a API REST do WordPress

A API REST é ativada por padrão na instalação do WordPress. Após adquirir um plano de hospedagem WordPress rápida e configurar o CMS, acesse o link a seguir para verificar se a API REST está ativada:

http://seudominio.com/wp-json/
lista de endpoints em api rest wordpress

Lembre-se de substituir seudominio.com pelo endereço de seu próprio site. Se você vir uma lista de endpoints, a API REST do WordPress está ativa. Observe que esse recurso só está disponível para o WordPress 4.7 ou posterior.

Dica

Recomendamos configurar um ambiente de teste local para suas atividades de desenvolvimento do WordPress, para evitar configurações incorretas ou erros indesejados que possam afetar a disponibilidade do site ou a experiência do usuário.

Em seguida, instale o utilitário cURL na interface de linha de comando (CLI) de sua máquina local, como o Prompt de Comando ou o Terminal. Ele permite que você envie e receba solicitações do servidor WordPress para testes.

Depois, instale o manipulador da API REST Basic Auth para configurar seu método de verificação. Ele permite que você acesse dados privados que exigem privilégios administrativos.

Após instalar o plugin, podemos começar a enviar solicitações HTTP por meio da API REST do WordPress. Para fazer isso, abra o WP-CLI e conecte-se ao seu site via SSH. Os usuários da Hostinger podem encontrar essas credenciais acessando o hPanel → Gerenciamento de site → Avançado → Acesso SSH.

Vamos tentar acessar dados restritos para verificar se a autenticação da API REST do WP funciona corretamente.

Por exemplo, executaremos o seguinte prompt no sistema local para recuperar postagens não publicadas:

curl -X GET --user nomedeusuario:senha -i http://seudominio.com/wp-json/wp/v2/posts?status=draft
recuperando posts não publicados com a api rest wordpress

Como Usar a API REST do WordPress

Depois de configurar seu ambiente de hospedagem e teste, podemos começar a usar a REST API do WordPress. Aqui estão alguns de seus cenários de uso mais comuns:

Importante! Antes de continuar, verifique se você entende os métodos de chamada da API e o formato JSON para interpretar os dados brutos com mais rapidez.

1. Obtenha Dados com Solicitações GET

Use o método GET para recuperar dados do seu site WordPress por meio da API REST JSON. Por exemplo, vamos buscar conteúdo do endpoint de posts:

GET http://seudominio.com/wp-json/wp/v2/posts/

Essa solicitação de API imprimirá todos os posts do seu site WordPress, incluindo detalhes como ID, conteúdo e título. Se você executá-la usando o cURL, a saída deverá ter a aparência mostrada abaixo.

recuperando posts com a api rest wordpress

Você também pode buscar páginas usando o endpoint correspondente:

GET http://seudominio.com/wp-json/wp/v2/pages/

O resultado é semelhante, mas o comando recuperará todas as páginas em vez dos posts. Você também pode consultar o tipo de post personalizado especificando seu nome no endpoint:

GET http://seudominio.com/wp-json/wp/v2/custom-post-type/

Por exemplo, use o prompt a seguir para recuperar posts personalizados de páginas de produtos:

GET http://seudominio.com/wp-json/wp/v2/product-page

Importante! Lembre-se de usar o cURL para testar as solicitações da API REST via WP-CLI. Para o código real do aplicativo, use funções ou bibliotecas como a Fetch do JavaScript.

Você pode usar um parâmetro de consulta para modificar a saída, como paginar ou classificar os dados. Por exemplo, use o seguinte endpoint para reordenar as postagens com base na data de criação em ordem crescente:

/wp-json/wp/v2/posts?orderby=date&order=desc

Você também pode usar os parâmetros de consulta page per_page para recuperar um número específico de posts de uma determinada página. Aqui está um exemplo:

/wp-json/wp/v2/posts?page=2&per_page=10

Usando o endpoint, o método GET agrupará as postagens em várias páginas, cada uma contendo 10 entradas, e buscará a segunda.

O WordPress fornece vários outros parâmetros de consulta para filtrar dados com base em critérios específicos. Para saber mais sobre eles, leia a documentação sobre as referências da API REST para posts.

2. Crie Conteúdo com Solicitações POST

O método POST permite que você adicione novo conteúdo ao banco de dados do WordPress usando um endpoint específico. Por exemplo, use o prompt a seguir para criar uma postagem em branco:

POST http://seudominio.com/wp-json/wp/v2/posts/

Você também pode criar novas páginas ou entradas de postagem personalizadas usando seus respectivos endpoints da API REST do WordPress da seguinte forma:

POST http://seudominio.com/wp-json/wp/v2/pages/
POST http://seudominio.com/wp-json/wp/v2/custom-post-types/

Para criar uma entrada adequada com um títulostatus de publicação conteúdo, especifique esses detalhes no código do aplicativo.

Além disso, a solicitação POST da API REST do WordPress geralmente requer privilégios administrativos. Se você estiver usando métodos de autenticação como a autenticação aberta (OAuth), certifique-se de adicionar o token de verificação.

Você também deve adicionar validação de resposta, permitindo que seu aplicativo confirme se a solicitação de API POST foi bem-sucedida.

3. Atualize e Exclua Conteúdo

O método PUT da API REST permite que você modifique um post, uma página ou uma entrada de post personalizada específica usando seu ID. Por exemplo, você pode inserir novo conteúdo ou alterar o status de publicação.

A sintaxe é semelhante a outros métodos de chamada de API, mas com o ID do post no final da rota:

PUT http://seudominio.com/wp-json/wp/v2/posts/ID

Em seguida, especifique os dados que você deseja modificar. Por exemplo, para inserir novo conteúdo, adicione a seguinte linha:

{
"content" = "publish"
}

Você também pode excluir posts, páginas ou entradas de posts personalizados com o ID deles, como no exemplo abaixo:

DELETE http://seudominio.com/wp-json/wp/v2/posts/ID

Por padrão, o método DELETE move os dados para a lixeira, permitindo que você os recupere posteriormente, se necessário. Para exclusão permanente, adicione o parâmetro force, da seguinte forma:

DELETE http://seudominio.com/wp-json/wp/v2/posts/567?force=true

Atenção! Recomendamos evitar o argumento force se possível, pois ele pode causar perda acidental de dados.

4. Trabalhe com Endpoints Personalizados

A API REST do WordPress fornece vários endpoints padrão com funcionalidades predefinidas. No entanto, eles podem ser insuficientes se seu aplicativo precisar de dados específicos.

Embora você possa personalizar as saídas dos endpoints padrão usando filtros ou parâmetros de consulta, este processo pode ser ineficaz devido à quantidade de código que você precisará adicionar. Além disso, pode ser difícil obter conteúdo extra, como envios de formulários.

Para simplificar o acesso aos dados para necessidades específicas, crie endpoints personalizados no WordPress. Você pode fazer isso modificando o arquivo functions.php do seu tema por meio do editor de arquivos do tema ou criando um plugin personalizado para WordPress.

editando arquivo functions.php no editor de temas do wordpress

Adicione o seguinte trecho de código para registrar um endpoint personalizado, incluindo sua rota, função de retorno de chamada e método de consulta:

add_action( 'rest_api_init', function () {
register_rest_route( 'your_namespace/v1', '/your_endpoint/', array(
'methods' => 'GET',
'callback' => 'your_endpoint_callback',
) );
} );

Em seguida, especifique a função de retorno de chamada a ser acionada quando o ponto de extremidade for acessado. Ela tratará da manipulação de dados e retornará a resposta solicitada.

function your_endpoint_callback( $data ) {
// Sua lógica para lidar com a solicitação como retornar uma resposta JSON
return array( 'message' => 'Seu endpoint personalizado funciona!' );
}

Por exemplo, digamos que seu site WordPress tem formulários cujos envios são registrados como posts personalizados. Você pode criar um endpoint personalizado que permita recuperar as entradas adicionando o seguinte trecho de código:

add_action( 'rest_api_init', function () {
register_rest_route( 'custom/v1', '/form-submissions', array(
'methods' => 'GET',
'callback' => 'get_form_submissions',
) );
} );

function get_form_submissions() {
$args = array(
'post_type' => 'form_submission',
'posts_per_page' => -1,
);

$form_submissions = get_posts( $args );

$response = array();
foreach ( $form_submissions as $submission ) {
$response[] = array(
'id' => $submission->ID,
'title' => $submission->post_title,
'content' => $submission->post_content,
'author' => $submission->post_author,
'created_at' => $submission->post_date,
// Adicione mais campos conforme necessário
);
}

return $response;
}

função get_posts repete os envios, que você pode acessar usando o método GET:

GET http://seudominio.com/wp-json/custom/v1/form-submissions

5. Selecione sua Autenticação

A autenticação da API REST do WordPress garante a transmissão segura de dados com clientes válidos. Os usuários podem implementar vários mecanismos de autenticação, dependendo dos requisitos de seus aplicativos.

O WordPress usa a autenticação de cookies por padrão. Ele atribui aos usuários conectados cookies de autenticação, que serão incluídos no cabeçalho da solicitação para chamadas de API subsequentes. Esse método é simples, mas inadequado para serviços de terceiros que exigem autenticação fora do WordPress.

Outro método é o OAuth, que usa um token de autenticação para validar solicitações de seu serviço da web. Por não usar credenciais de usuário, ele oferece maior flexibilidade e confiabilidade. No entanto, o processo de configuração pode ser mais complicado.

Para configurar o OAuth, use o plugin oficial da API REST no repositório do GitHub. Além disso, recomendamos o OAuth 2.0, pois ele é mais simples de implementar, mais escalável e usa uma arquitetura mais moderna do que a versão 1.0.

Exemplos da API REST do WordPress

A API REST é útil para várias tarefas e aplicativos de desenvolvimento web. Por exemplo, você pode recuperar posts do CMS e exibi-los em outros sites para distribuição de conteúdo.

Outro caso de uso é permitir o envio de dados de um site estático existente para o back-end do WordPress. Isso simplifica o processo de desenvolvimento, pois você pode aproveitar os recursos do CMS para armazenar os dados em vez de configurar um banco de dados manualmente.

A integração da API do WordPress também permite que você atualize automaticamente o conteúdo do seu site. Por exemplo, você pode enviar publicações do Apple News para o seu site usando o método PUT sem fazer login.

Um caso de uso mais avançado da API REST é a criação de um CMS headless. Por exemplo, você pode criar aplicativos móveis de notícias que usam o painel do WordPress para gerenciamento de conteúdo.

As aplicações da API incluem a obtenção de dados específicos de postagens no banco de dados para o editor de blocos. Outro exemplo é a exibição do Google Maps em sites do WordPress usando plugins.

Práticas Recomendadas Para Usar a API REST do WordPress

Para usar com eficiência a API REST do WordPress em suas tarefas de desenvolvimento e integração, considere as práticas recomendadas a seguir.

Configure a Autenticação Adequada

Configurar a autenticação adequada aumenta a segurança da API REST WordPress, garantindo que somente usuários ou aplicativos autorizados possam acessar dados confidenciais.

Isso ajuda a minimizar as vulnerabilidades de segurança, evitando o acesso não autorizado e as violações de dados. Para escolher o melhor método, considere a escalabilidade, a facilidade de implementação e seus requisitos.

Limpe as Entradas

A limpeza das entradas na API REST do WordPress é importante, especialmente quando se trabalha com dados públicos que todos os usuários podem acessar. Isso envolve a validação e a limpeza da entrada de fontes externas para evitar que códigos mal-intencionados se infiltrem no CMS.

Ele também ajuda a proteger seu WordPress contra vulnerabilidades de segurança, como injeção de SQL e XSS.

O WordPress fornece funções internas para sanitizar dados de entrada, como sanitize_text_field()sanitize_email(), para e-mail, sanitize_url(). Adicione-as ao código do seu aplicativo para aqueles que receberão e analisarão o conteúdo recuperado.

Use Cache

O armazenamento em cache ajuda a otimizar o desempenho e a escalabilidade do seu site WordPress. Ele reduz a carga do servidor e melhora os tempos de resposta ao armazenar dados acessados com frequência na memória, permitindo que os clientes e a API recuperem os dados mais rapidamente.

Minimizar a carga do servidor também ajuda a manter o tempo de atividade da API do WordPress durante picos de tráfego. Se muitos clientes enviarem solicitações simultaneamente, o banco de dados poderá não ser capaz de lidar com elas, causando tempo de inatividade.

Há várias soluções e plugins de cache para WordPress, incluindo o  LiteSpeed Caching e o W3 Total Cache.

Minimize Solicitações e Código

Para melhorar o desempenho do aplicativo e do WordPress, use o menor número possível de chamadas de API. Você também pode agrupar solicitações relacionadas a uma tarefa específica e enviá-las simultaneamente, minimizando a comunicação de ida e volta.

Além disso, evite operações redundantes para manter seu código eficiente e curto. Além de minimizar o uso de recursos, isso ajuda a melhorar a capacidade de manutenção e o dimensionamento.

Mantenha Todo o Software Atualizado

Certifique-se de atualizar regularmente os arquivos principais do WordPress, os plugins, os temas e qualquer outro software que você use em seu site para manter tudo funcionando sem problemas. Isso garantirá que você obtenha os recursos mais recentes, permitindo que os serviços da web se integrem perfeitamente.

Além disso, com o uso das versões mais recentes você tem certeza que estará com os patches de segurança e as correções de bugs mais recentes, para manter a usabilidade e a proteção. Recomendamos também que você assine newsletters e blogs sobre o WordPress para ficar em dia sobre as atualizações mais recentes.

Conclusão

A API REST do WordPress é um recurso que permite que seu CMS interaja perfeitamente com serviços da web de terceiros. Ela é comumente usada para desenvolver aplicativos com conteúdo do WordPress ou criar um CMS headless.

A API REST está ativada por padrão no núcleo do WordPress, que você pode testar enviando uma solicitação usando o cURL via WP-CLI. Para isso, especifique o método HTTP e a rota para acessar um endpoint que atua como uma função que modificará os dados.

Use o método GET para buscar dados, como uma publicação do WordPress, em seu aplicativo. Ou então use o comando POST para enviar conteúdo, PUT para modificar uma entrada existente e DELETE para remover um elemento.

Ao usar a API, certifique-se de usar a autenticação adequada, como OAuth ou Basic Auth. Além disso, mantenha seu código limpo e conciso e aproveite o armazenamento em cache para manter o desempenho da API REST do WordPress mesmo em momentos de carga mais alta.

Perguntas Frequentes Sobre a API REST do WordPress

Esta seção abordará algumas perguntas frequentes sobre a API REST do WordPress para ajudar você a entender melhor o assunto.

Quais São os Benefícios de Usar a API REST do WordPress?

A API REST JSON permite que você integre o WordPress a outros serviços da web. Ela permite o acesso direto aos dados e recursos do CMS sem que os usuários tenham que interagir diretamente com o painel. 

Como Faço Para Obter Dados da API REST do WordPress?

Para recuperar dados da API REST do WordPress, escreva um código que envie uma solicitação HTTP para um endpoint usando o método GET. Você pode usar ferramentas compatíveis com HTTP, como o Fetch do JavaScript ou o cURL no WP-CLI. Em seguida, analise os dados JSON de acordo com a linguagem de programação de seu aplicativo.

Há Alguma Limitação ao Trabalhar com a API REST do WordPress?

Sim. O número máximo de posts por página que você pode recuperar por meio da API REST é 100. Além disso, a obtenção de conteúdo por meio da API exige mais poder de computação do que uma consulta direta ao banco de dados, o que pode levar a problemas de desempenho.

Quem Deve Aprender a Usar a API REST do WordPress?

É importante dominar a API REST se você é desenvolvedor do WordPress (ou aspirante) e deseja criar um aplicativo ou serviço da web aproveitando a funcionalidade do CMS. Ter este conhecimento também é essencial para usuários que desejam desenvolver um CMS headless ou migrar seu conteúdo para outra plataforma. 

Author
O autor

Bruno Santana

Jornalista formado pela Universidade Federal da Bahia, além de colaborador eventual do site MacMagazine e da editoria de cultura do Jornal A Tarde, de Salvador. Fascinado por tecnologia desde criança, criei meu primeiro blog no Wordpress aos 13 anos e nunca mais parei. Nas horas vagas, gosto de ir ao cinema e fazer experimentos na cozinha.