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á?
Conteúdo
O Que é a API REST do WordPress?
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/
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
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.
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 e 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ítulo, status de publicação e 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.
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;
}
A 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, e 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.
Comentários
May 16 2018
Bom dia! Gostaria de saber se consigo construir um tema para WordPress utilizando da API, programando em outra linguagem por exemplo Python como back-end e React com JS no front.
May 22 2018
Bom dia, Eduarda, Tudo bem? Primeiramente, você precisa ter uma VPS para usar o Python. Se você tem uma VPS conosco, dá pra fazer. Se no seu caso for uma hospedagem compartilhada, infelizemente não tem como. Basicamente, você precisa de permissão de admin na hospedagem para poder fazer isso. Se tiver mais alguma dúvida pode entrar em contato conosco. :D
June 12 2018
Olá! Será que o Rest api pode ser a solução para localizar uma linha comando e fazer alterações?!? Ok, vou ser mais claro, estou tentando fazer uma alteração para mostrar a data da última atualização dos posts mas todas as pesquisas que fiz na internet apontam como solução alterar o código da single.php mas especificamente alterar o código "the_time". O grande problema é que esse comando não está na single.php provavelmente por conta do tema... Agora retomando, será que com o Rest Api não seria possível fazer essa alteração de forma mais simples?
June 15 2018
Olá, Eder, tudo certo? Sim, é possível usar API REST pra mostrar a data da última alteração do post, mas tem um jeito mais simples de fazer o que você precisa. Essa função abaixo faz com que o WordPress identifique a última data em que o post foi atualizado e mostra na tela: `function wpb_last_updated_date( $content ) {` `$u_time = get_the_time('U');` `$u_modified_time = get_the_modified_time('U');` `if ($u_modified_time >= $u_time + 86400) {` `$updated_date = get_the_modified_time('F jS, Y');` `$updated_time = get_the_modified_time('h:i a');` `$custom_content .= '
Last updated on '. $updated_date . ' at '. $updated_time .'
';` `}` `$custom_content .= $content;` `return $custom_content;` `}` `add_filter( 'the_content', 'wpb_last_updated_date' );` Copiando estas linhas de código e colocar no fim do seu arquivo `functions.php` do tema que está em uso, assim que salvar pode recarregar a pagina do painel do WordPress que você provavelmente vai estar logado e assim que editar um post e salvar, ao acessar o post vai continuar mostrando a date me que ele foi postado e logo abaixo do título deve ser mostrado a data em que seu post foi alterado. Veja o resultado: http://prntscr.com/jvg48v :)"April 18 2019
Obrigado pela dica Ariane! Acredito que deixei passar batido o email de alerta sobre sua resposta e por isso estou vendo agora, quase um ano depois, rs. Acabei voltando a esta página porque ela aparece como backlink para meu site.
April 23 2019
Tenho uma VPS com API Rest em Spring. E gostaria que os dados da minha API fossem lido no lado do Wordpress. Ex: Relação de clientes ou produtos. Isso e possível ? como faria ? Como poderia criar formulários dinâmicos no Wordpress consumindo API ? Penso em criar formulários no lado do Wordpress para serem recebidos e/ou enviado via API para minha outra VPS.
April 24 2019
Oi, Avelino Você pode entrar em contato com nossa equipe de sucesso do cliente através do seu painel de controle que vamos te ajudar :)
October 14 2020
Olá, tenho uma dúvida. Como posso transformar o resultado de uma consulta via API externa (formato de texto) em um produto a ser adicionado no carrinho? Existe algum plugin pra isso?
October 14 2020
Olá Matheus, não ouvimos falar de nada do tipo não, infelizmente. Acho que o processo tem que ser manual mesmo :(
November 16 2021
Ola! Pessoal, tenho um projeto de aplicação feito no Bubble, mas queria construir uma API para levar o mesmo usuário do banco de dados do Bubble para o banco de dados de usuários do WordPress. Alguém consegue me ajudar, me dar uma dia de como construir essa api ?
November 19 2021
Olá, vou ser sincero que não entendo muito de Bubble, mas você pode dar uma lida neste artigo aqui para ver se não ajuda! ?
June 14 2022
Olá Pessoal! Eu consigo utilizar a API Rest para pegar informações de estoque em um arquivo .txt e atualizar o estoque de produtos do Woocommerce?
July 01 2022
Olá, Will! Eu verifiquei com a nossa equipe técnica, e eles não sabem de nenhuma maneira de usar a API Rest do WordPress para recuperar um arquivo .txt. O mais próximo do que você está tentando fazer que eles acharam é esse tópico aqui no StackOverflow. Apesar disso, é possível usar a Rest API para obter informações de estoque no WooCommerce. Isso pode ser feito usando os métodos descritos aqui ?
October 11 2022
Olá Galera, Como vão, tudo bem? Tem uma loja Virtual com um Calendário. Preciso colocar esse calendário em uma landing page. Como poderia implementar com API REST no Wordpress. Onde o usuário clica na data do calendário e é redirecionado para a página da LOJA do Link acima com a data e marcado no calendário. Fico no aguardo das considerações! Abraços!
October 14 2022
Olá, Luiz Carlos! Vê se este texto sobre o Events Calendar REST API Reference não consegue te ajudar a implementar esse recurso! ?
February 06 2023
Ola tudo bem ? eu queria saber qual arquivo que tenho que fazer essa troca para o meu domínio poderia me ajudar?
February 10 2023
Olá, Guilherme! De que troca de domínio você estaria falando? Mas pode ser que você esteja falando do functions.php que mencionamos em outro comentário ?
April 13 2023
Bom dia amigos, não entendo muito de WordPress woocomerce, fiz um aplicativo uma API que manda os produtos um por um para o ecommerce pois tentei de 100 em 100 mas me retorna erro pois o woocommerce so aceita de 100 em 100, tentei mudar mas nao achei, entao mando um por um, ai nao da o erro, mas demora 9hrs para subir os 7mil produtos com fotos - Agora tenho um problema serio preciso subir 70 mil produtos de uma outra empresa e ja tentei o json, mas retorna erro. podem me ajudar por favor como fazer subir os produtos, ou seja o json rapido.
April 28 2023
Olá, Rubens! Conversei com nossa equipe técnica e eles explicaram que você não precisa usar uma API para importar produtos em massa. Como você já tentou o método JSON, recomendamos que você tente o método CSV. Ele pode ser feito usando este plugin gratuito, que também importa imagens de produtos ?
January 13 2024
Olá! Tendo a integração com a API REST é possível conectar um banco de dados MySQL e efetuar consultas e requisições através da linguagem JAVA ?
January 26 2024
Oi, Leonardo! É sim :)