WordPress REST API: o core do CMS
O sistema de gerenciamento de conteúdo (CMS) WordPress é muito popular. Em comparação com outros CMS, ele oferece mais facilidade na criação de sites para diversas finalidades. Pessoas com bons conhecimentos em Office também podem manter um site sem grandes problemas. Além disso, os administradores web podem recorrer a mais de 55.000 plugins para executar várias tarefas do site. A maioria desses plugins tem uma versão básica gratuita.
O WordPress Hosting oferece diversos pacotes para que você crie seu site com mais facilidade e segurança. Simples instalação, segurança integrada e plataforma otimizada.
O que é WordPress REST API?
O termo WordPress REST API refere-se a uma interface que possibilita a comunicação com o banco de dados do WordPress. API significa Application Programming Interface (Interface de Programação de Aplicação). Ela permite a comunicação entre diferentes programas conforme um modelo definido, ou seja, ela funciona como um decodificador, que possibilita uma conversa entre dois sistemas que “falam línguas diferentes”. No nosso artigo APIs: o que você precisa saber sobre interfaces de programação você encontra mais informações sobre o tema.
A abreviatura REST significa Representational State Transfer (Transferência de Estado Representacional). Ela foi desenvolvida em 1994 pelo cientista da computação estadunidense Roy Fielding e descreve os princípios da troca de informações:
- Uniformidade: As URLs para acesso aos recursos devem ser uniformes, consistentes e acessíveis por uma abordagem comum, como GET.
- Separação Client-Server: Se a tecnologia do lado do servidor mudar (por exemplo, do WordPress), a aplicação do lado do cliente (por exemplo, do app) ainda deve ser capaz de acessá-la.
- Stateless: O servidor não altera seu estado quando uma API faz uma nova solicitação, mas não a salva.
- Possibilidade de armazenamento em cache: Assegura que o lado do servidor e do cliente funcionem em alta velocidade e em conformidade.
- Sistema em camadas: O acesso é possível por múltiplas camadas (layers).
- Código on demand (opcional): o código para a execução local é enviado ao cliente somente sob demanda.
Esses princípios são considerados padrão pelo core do WordPress desde a versão 4.7 do software, isto é, hoje eles fazem parte do “coração” desse sistema de gerenciamento de conteúdo. Até 13 de maio de 2018, existia o plugin WP REST API (WP API). A partir da versão 5.x do WordPress, elementos que expandem as possibilidades de comunicação com outras aplicações web foram incorporados no core do sistema.
Comece seu site com rapidez e beneficie-se da versão mais segura e atualizada do WordPress!
- Domínio
- SSL
- Suporte 24 horas
Por que usar WordPress REST API?
A interface do WordPress REST possibilita a comunicação direta com os bancos de dados do WordPress, que armazenam todas as informações de um site. Esses bancos de dados são usados com o sistema de gerenciamento de bancos de dados MySQL, um software open source. Para que essa comunicação ocorra, existem comandos que permitem o acesso por meio da API integrada ao WordPress. Várias são as abordagens possíveis:
Acesso do terminal ao banco de dados
A API do WordPress REST permite acessar os conteúdos de um site do WordPress pelo prompt de comando no Windows:
- Clique com o botão direito do mouse em Windows > “Executar” > digite “cmd” na janela > “OK”
- Ative a busca na barra de tarefas > insira “cmd” > clique no app “prompt de comando”
Já o acesso por macOS é feito da seguinte forma:
- Use a combinação de teclas “cmd” + [espaço] + “Terminal” e clique duas vezes no resultado da busca
- Na barra de menus superior do desktop, selecione “Ir para” > “Programas de serviços” e clique duas vezes em “Terminal” na janela que aparecer
- Em “Dock”, clique em “Programas” > “Programas de serviços” > “Terminal”
Adicione os comandos no prompt piscando na tela. Por exemplo: depois de C:\Users\seu-nome-de-usuario>_
insira a seguinte instrução: curl -X OPTIONS -i https://seu-dominio.com.br/wp-json/
.
Comece apertando “Enter” e, logo a seguir, você verá o output na tela. Esses são os dados básicos do site, com as opções permitidas (“OPTIONS”). Aqui você pode ver que o comando GET está sendo autorizado (“Allow: GET”)
Utilizando exatamente o comando a seguir, você obterá todas as informações do banco de dados: curl -X GET http://seu-dominio.com.br/wp-json/
.
Usar WordPress REST API com acesso pelo navegador
Os conteúdos do banco de dados do WordPress também podem ser acessados por uma solicitação do navegador HTTP. Para isso, também é preciso usar JSON: https://seu-dominio.com.br/wp-json/
JSON é a abreviatura de JavaScript Object Notation (Notação de Objeto em JavaScript), um formato baseado em texto para a troca de dados. Nosso tutorial sobre a notação LD JSON e nosso artigo sobre consulta de dados cross-domain com JSONP mostram como é fácil aprender a ler esse formato multifuncional.
As informações acessadas são como um livro aberto na sua frente. A API do WordPress REST tem vários comandos que possibilitam acesso detalhado a determinados componentes do banco de dados, como aos posts, com o seguinte código: https://seu-dominio.com.br/wp-json/wp/v2/posts
.
Assim, você terá uma visão geral de todos os posts do banco de dados, inclusive às versões, aos links, aos conteúdos de mídia, às edições anteriores e a muito mais. Cada post no banco de dados do WordPress é identificado com um ID exclusivo:
Para exibir um único post no navegador, insira o ID do post da seguinte forma: https://seudominio.com.de/wp-json/wp/v2/posts/6576
Esse procedimento pode ser executado com todos os conteúdos: não só posts, mas também páginas, conteúdos de mídia, autores e outros. O REST API Handbook, manual para WordPress REST API, contém a referência de comandos completa, e pode ser encontrado na página do WordPress.org para desenvolvedores.
WordPress REST API na prática
Um exemplo simples esclarece na prática a função da API do WordPress REST: um novo site deseja coletar notícias de outros provedores da internet. Só é possível fazer isso com a WordPress REST API se o site que disponibiliza as notícias também for programado no WordPress. Para a coleta das notícias, os conteúdos são consultados com seus IDs nos servidores selecionados.
Para ter sempre acesso aos conteúdos mais atuais, há diversas possibilidades de programação. Algumas dessas possibilidades são a linguagem de script PHP ou a biblioteca JavaScript jQuery. Dois exemplos simples de códigos para WordPress REST API mostram essas possibilidades.
Leitura de um post com PHP
Para ler um post de outro site no WordPress, é necessário integrar um trecho de código na página HTML, entre <body>
e </body>
. Essa página deve ser capaz de processar PHP, no exemplo abaixo, com o nome de arquivo “test-wp-rest-api.php”. Os nomes dos campos exibidos podem ser retirados da consulta JSON acima (guide, title, link, content, etc.). O trecho de código consiste em um script PHP, que recupera informações, e em um elemento HTML, que devolve os dados lidos pelo PHP:
<?php
$url = 'https://www.meu-site.com.br/wp-json/wp/v2/posts/6576'; // Caminho da consulta JSON com ID
$data = file_get_contents($url); // Transfere o conteúdo em uma variável
$mydata = json_decode($data, true); // Decodifica JSON
?>
<h1>PHP: Ler post por WordPress REST API</h1> // Cabeçalho
<div id="mydata">
<?php echo $mydata['content']['rendered']; ?> // Output de 'content' com o ID 6576
</div>
phpLeitura do post com jQuery
Além da linguagem de scripts PHP, os conteúdos também podem ser lidos pela biblioteca jQuery. Para fazer a leitura, essa biblioteca deve ser integrada ao cabeçalho da página. Depois disso, a leitura também funcionará com a extensão .html.
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> // Integrar jQuery
<script>// Seção para leitura dos dados do post
$(function() {
$.getJSON('https://mtmedia.de/wp-json/wp/v2/posts/6576', function(alldata) {
var contentElm = alldata.content.rendered
$(contentElm).appendTo("#mydata");
});
});
</script>
</head>
<body>
<h1>jQuery: Ler post por WordPress REST API</h1> // Cabeçalho
<div id="mydata"> Output de 'content' do post com ID 6576
</div>
</body>
phpO resultado é idêntico ao mostrado pelo navegador usando PHP output. Com jQuery, o conteúdo é devolvido no DIV container “mydata”, sem uma variável adicional.
O que acontece em sites que usam outros CMS?
Essa API é chamada WordPress REST API por ser parte integrante da programação do WordPress. Isso significa que a interface só consegue consultar páginas que também usarem o WordPress.
Ao tentar consultar sites que não foram criados com WordPress, a mensagem de erro 404 é emitida. Contudo, existem outras formas de acessar o banco de dados do CMS de sites de outras plataformas.
Bloquear acessos ao WordPress REST API
Nem sempre administradores de sites sentem-se confortáveis em permitir que outros acessem seus bancos de dados, até mesmo para reutilizar informações. Para evitar que isso ocorra, eles ativam uma barreira no back-end do WordPress.
Como qualquer outro plugin do WordPress, o Disable WP REST API deve ser ativado após a instalação para impedir o acesso não autorizado. Não é necessário fazer outras configurações.
O código de status “401” (não autorizado) significa que o servidor recusou a o pedido HTTP devido a uma autenticação incorreta ou inválida. Ao contrário do que ocorre no erro 403, contudo, a autenticação é possível.
Vários sites são protegidos dessa forma para evitar o roubo automático de conteúdos. Pedir permissão antes de usar conteúdos de terceiros denota não somente educação, mas respeito aos direitos autorais. Para testar em seu próprio site, basta configurar o plugin como “desativado”. Para que os conteúdos do banco de dados possam ser novamente acessados. Os dados contidos no plugin não serão perdidos.