Qualquer pessoa que preste atenção às aparições públicas de Matt Mullenweg ao longo dos últimos doze meses terá notado a batida constante de um tambor particular: a importância da API do WordPress JSON REST para o futuro da plataforma.
Matt não está sozinho em seu entusiasmo. Comentadores como Brian Krogsgard o aclamaram como potencialmente “o projeto mais emocionante para a plataforma desde a introdução de tipos de postagem personalizados”.
Neste artigo, abordaremos o que é a API do WordPress JSON REST , quando está acontecendo , e o que você precisa saber para tirar o máximo proveito das possibilidades verdadeiramente revolucionárias que vai abrir para todos no mundo do WordPress.
Como um bônus, também ouviremos os pensamentos do autômato Jack Lennox , que recentemente falou no WordCamp London sobre a construção de temas com a API REST do WordPress, sobre onde ele acha que a API pode liderar a comunidade.
Mas antes de tudo isso, vamos começar com alguns antecedentes gerais sobre as APIs REST.
Familiarizar-se com o conceito de APIs REST
Gostaria de deixar uma coisa clara desde o início: embora eu me considere um profissional de WordPress experiente na maioria dos aspectos, não sou desenvolvedor.
Com isso em mente, minha interpretação de alguns dos conceitos-chave abaixo não será necessariamente tão completa em termos de detalhes técnicos como você pode achar se você fosse, por exemplo, empilhando através da documentação da IBM sobre o assunto. O que pode ser uma coisa boa!
Com essa advertência fora do caminho, vamos rever o básico.
O que é uma API?
A API é curta para a Interface do Programa de Aplicação. Em termos leigos, é o conjunto acordado de formas padronizadas que um determinado software pode ser usado; As regras definidas para a sua interação com o mundo em geral, que regem como outros pedaços de software podem conversar com um programa e como ele responderá.
O que é uma API REST?
A API REST, por sua vez, é uma abordagem arquitetônica particular para juntar essas regras. RESTO significa Re apresentação S tate T ransfer . É uma metodologia projetada para permitir que os programas se conversem um ao outro da maneira mais simples possível.
É um formato inerentemente flexível, mas espera-se que as implementações compartilhem certas características principais. Os quatro listados aqui são retirados da excelente introdução IBM mencionada acima:
- Use métodos HTTP de forma explícita: ocorre na web com métodos HTTP padrão, como PUT, GET, POST e DELETE.
- Seja apátrida: o cliente incluirá qualquer informação de estado necessária na solicitação ao servidor e vice-versa.
- Exposir estrutura de diretório – como URIs: Você estará olhando para estruturas de URL familiares como http://myexampleschool.com/teachers/john
- Transferir XML, Javascript Object Notation (JSON) ou ambos: Existe um conjunto de opções acordado para troca de dados.
Há uma excelente introdução geral ao conceito de APIs REST na Tutsplus.com se você estiver procurando por explorar mais detalhes técnicos. Alternativamente, demore alguns minutos para passar pela visão geral de Todd Fredrich abaixo.
O que tudo acima se resume ao contexto do WordPress e o plugin da API REST é resumido de forma muito sucinta na página inicial do plugin em si:
Este plugin fornece uma API REST fácil de usar, disponível via HTTP. Pegue os dados do seu site em formato JSON simples, incluindo usuários, postagens, taxonomias e muito mais. Recuperar ou atualizar dados é tão simples como enviar uma solicitação HTTP.
Depois de instalar o plugin, o acesso aos dados do seu site via REST é direto. A página inicial do plugin continua a listar alguns exemplos ilustrativos úteis:
Deseja obter as postagens do seu site? Basta enviar um pedido GET para
/wp-json/posts
. Atualizar usuário com ID 4? Envie um pedido POST para/wp-json/users/4
. Obter todas as postagens com o termo de pesquisa “incrível”?GET /wp-json/posts?filter[s]=awesome.
É assim tão fácil.
Como podemos ver lá, qualquer dado retornado será na forma de JSON, o que nos leva muito bem à nossa próxima seção.
Onde JSON se encaixa na imagem?
A API REST do WordPress usa a Notificação de Objeto Javascript (JSON) como seu formato de dados de escolha.
JSON é um formato de dados moderno, amigável para humanos com codificadores e descodificadores disponíveis em todas as principais linguas de programação. A escolha do JSON facilita o WordPress e qualquer aplicativo de terceiros para enviar informações de volta e encaminhar um ao outro em um formato mutuamente inteligível.
Para aqueles inteiramente novos para a JSON, você pode encontrar uma boa visão geral introdutória na Copter Labs .
A chave para entender quando pensa em APIs REST é que tudo está acontecendo na web via HTTP – dados e dados.
Existe uma verdadeira separação entre o cliente e o servidor no local, e não é necessário estar dentro do front-end do WordPress ou do painel de administração para quaisquer pedidos a serem lidos ou executados.
É exatamente essa distinção aparentemente pequena que abre um mundo verdadeiramente excitante de novas possibilidades.
Antes de entrar neles, vamos analisar rapidamente o estado atual do plugin real da API do WordPress JSON REST.
O plugin API WordPress JSON REST
A API REST do WordPress está atualmente em desenvolvimento ativo como um plugin de recursos . Como os usuários experientes de WordPress saberão, a viagem do plugin de recurso ao núcleo não é sempre suave. Quando você está lidando com uma característica do tamanho e complexidade da API REST do WordPress, isso é ainda mais o caso.
A API REST foi originalmente agendada para integração no núcleo na versão 4.1 e atualmente – otimista, alguns podem dizer – desenhados para o WordPress 4.3 em meados de agosto de 2015.
Uma excelente e recente visão geral de Josh Pollock em Torquemag.io deu algumas ótimas idéias sobre uma série de razões por trás das cenas que estão fazendo que a data de agosto pareça cada vez mais improvável.
O principal deles é a recente decisão de traçar uma linha dura entre a versão 1.2 existente do plugin e uma versão programada 2 projetada especificamente para a inclusão do núcleo.
O sentimento agora parece ser que “em algum momento em 2015” é o melhor que podemos esperar, mas não se surpreenda ao ver esse deslizamento da data.
Claro, isso não significa que os desenvolvedores não sejam livres para começar a experimentar de imediato – a versão 1.2 está totalmente pronta para ser usada e testada como um plugin. Basta informar que a implementação do núcleo completo pode estar bem longe.
A documentação completa para a versão atual está disponível em seu próprio site dedicado em wp-api.org , que inclui instruções de Configuração Rápida e guias iniciantes para desenvolvedores que procuram chutar os pneus.
Mais três páginas úteis para marcar para ficar no topo dos desenvolvimentos são as seguintes:
- A página inicial do WP REST API Plugin
- A seção WP REST API em Make WordPress Core
- O repositório WP-API Github
Não cometer nenhum erro sobre isso – apesar de qualquer obstáculo de curto prazo, o plugin pode ter atingido, esta funcionalidade está chegando ao núcleo . E vai ser enorme.
Vamos começar a perfurar os motivos por que definitivamente é esse o caso.
Por que a API REST do WordPress é importante?
Nesta fase do processo, posso imaginar duas respostas bastante específicas ao que cobrimos até agora:
- O que isso significa tudo isso para mim? Isso não é apenas um tipo de projeto “técnico arrumando-se nos bastidores”?
- Oh meu Deus, isso muda absolutamente tudo!
Permita-me explicar por que penso que este último é muito mais o caso do que o anterior.
Para resumir, a integração da JSON REST API marcará a transformação final do WordPress de suas raízes humildes como uma solução de blogs em uma plataforma de aplicativos totalmente equipada.
Ao fornecer uma interface programática acordada e padronizada entre o WordPress e o mundo exterior, o software abre-se a todos os outros aplicativos e ambiente de desenvolvimento na Terra.
Esta é uma notícia absolutamente enorme. Aqui estão cinco razões sólidas pelas quais:
1. Cortando o cabo com PHP
Apesar de alguns dos flak que atraiu no passado, o PHP ainda é a potência acima de mais de 80% dos sites modernos e é apoiado ativamente por gigantes da web como o Facebook e, claro, o WordPress.
A última década, no entanto, tem avanços enormes em outras linguas, como Ruby, Python e Go, em termos de velocidade, ferramentas e estruturas disponíveis.
A API REST fornece esses idiomas de acesso instantâneo a toda a gama de funcionalidades nativas do WordPress. Esta razão por si só deve ser suficiente para que qualquer desenvolvedor ou a mente do proprietário do site esteja correndo.
Uma boa maneira de agarrar instantaneamente o potencial oferecido aqui é considerar o mundo dos plugins. Qualquer plugin WordPress que você possa pensar é agora um candidato para a integração de primeira classe em outros frameworks, como o Ruby on Rails ou o Django .
Quando você pensa sobre a riqueza do ecossistema WordPress e como os aspectos com sucesso deles (como frameworks de tema e plugins) foram monetizados, o potencial de abrir portas para novas plataformas é um problema de consumo de receitas para desenvolvedores.
2. Integração True Mobile
O WordPress provavelmente fez melhor do que a maioria dos sistemas de gerenciamento de conteúdo mainstream para enfrentar o desafio de exibir sites em uma enorme variedade de dispositivos (através de um tema de resposta ). No entanto, a verdadeira integração com os respectivos mundos do iOS e do Android fora do navegador permaneceu como objetivo evasivo.
Existem aplicativos nativos do WordPress para usar o aplicativo em si, tanto no Android quanto no iOS , é claro, mas a verdadeira integração de terceiros está longe de ser comum.
Usando a API REST, os desenvolvedores móveis poderão potencialmente tratar as instalações do WordPress como apenas outro servidor, com pontos finais definidos do ponto de vista de seus aplicativos. Esse fato, por si só, abre o WordPress como um verdadeiro backend verdadeiro para aplicativos móveis nativos e prepara o caminho para todo tipo de integrações futuras.
A AppPresser tem uma ótima corrida dos conceitos básicos de como isso pode funcionar em seu site para estimular sua imaginação.
Vale a pena notar aqui que o uso do aplicativo no celular permanece em torno do nível de 80% , então está claro que o WordPress terá que se mover para o ambiente do aplicativo e não o contrário. A API REST é a maneira como isso vai acontecer.
Quando você considera a quantidade de sites atualmente disponíveis no WordPress que também estão executando versões de aplicativos completamente diferentes dos aspectos de suas ofertas on-line, o alcance da futura integração aqui é verdadeiramente imenso.
3. O Front-End será estritamente opcional
Os dois pontos anteriores introduzem um terço mais amplo: o uso do front-end do WordPress se tornará estritamente opcional .
Do ponto de vista da API, o front-end do WordPress é meramente outro aplicativo externo que atinge seus pontos finais. As implicações disso são enormes.
O WordPress agora é apenas um outro item que pode ser adicionado de forma perfeita a qualquer caixa de ferramentas de desenvolvedor moderno sem ter que passar por seu sistema de modelos, fazer logon ou lidar com as nozes e parafusos dos dispositivos internos do WordPress.
Espere ver uma revolução nos casos de uso de conteúdo e plugin como as implicações desta coletor para desenvolvedores e proprietários de sites em todo o mundo.
4. O WordPress Backend está pronto para ser reimaginado
Enquanto o administrador do WordPress existiu, alguém, em algum lugar, encontrou algo para se queixar sobre isso. E eu sou o primeiro a admitir que eu fui culpado disso na ocasião .
A potencial integração total da API REST no núcleo abre a possibilidade de o próprio administrador do WordPress ser verdadeiramente reimaginado, até o ponto em que os desenvolvedores serão finalmente livres para definir sua própria escolha inteiramente diferente, em vez de simplesmente personalizar os cantos aqui e há.
Exemplos disto já estão se tornando selvagens – com a tomada exclusiva do WordPress.com no painel de administração sendo o exemplo de perfil mais alto até o momento – embora seja certo que é alimentado pela API separada do WordPress.com.
Artigos recentes de Jeff Chandler no WP Tavern e Noel Tock oferecem visões interessantes da paisagem atual e de algumas direções que o administrador do WordPress poderia seguir no futuro – incluindo referências à experimentação atual da HappyTables e da Pickle nesse sentido.
5. Como embarcar o Java Bandwagon
Nesta fase é mais ou menos oficial: Javascript está comendo o mundo .
Mencionamos o surgimento de frameworks como Rails e Django no primeiro ponto acima, mas a verdadeira estrela de tiro em termos de idiomas nos últimos cinco anos, sem dúvida, foi o Javascript.
O surgimento do Node.js no lado do servidor, combinado com uma nova geração de frameworks front-end, como o Angular JS , Backbone , Ember e React , colocaram o Javascript firmemente na frente e no centro.
A API REST torna o WordPress um parceiro potencial com essas tecnologias, em vez de um concorrente. Quando você considera o apoio do peso pesado, o Angular JS e Reagir, em particular, tem – Google e Facebook, respectivamente – esta é uma posição inteligente a ser tomada.
Do ponto de vista dos desenvolvedores e dos designers de temas, isso significa que eles são livres para explorar o melhor da raça das novas tecnologias em conjunto com o aperfeiçoamento de suas habilidades existentes do WordPress – verdadeiramente o melhor dos dois mundos.
Projetos práticos de API REST
Ainda são dias adiantados no mundo da API de REST, e nós mal riscamos a superfície em termos do que está à frente com os pontos acima. Antes de concluir, gostaria de apresentar-lhe dois mergulhos profundos recentes nos detalhes do que a API pode fazer.
O primeiro se inclina mais na direção das opções de desenvolvimento de temas, enquanto o segundo está mais preocupado com o desenvolvimento de aplicativos.
1. Jack Lenox’s March 2015 London WordCamp REST API Theme Presentation
Esta é a palestra que tive a sorte de me encontrar recentemente, e isso realmente serviu de incentivo para este artigo completo.
Jack faz um trabalho incrível ao avançar no básico da API e fornece exemplos concretos ao longo do tempo. Então, ao invés de tentar parafrasear sua palestra, sugiro simplesmente observá-lo na íntegra.
Dois pontos principais saíram para mim enquanto observava:
- Os desenvolvedores das principais propriedades da web no Reino Unido, como The Sunday Times , já estão buscando aproveitar esta tecnologia, reforçando relatórios iniciais de grandes sites de mídia nos EUA, como o New York Times, que também o leva para uma rotação. Este tipo de adoção precoce, por pequena que seja ou experimental, me diz que há um número significativo de desenvolvedores de alto nível que há apenas comichão para dar um tiro na produção.
- A interseção entre os frameworks de Javascript existentes – como o Jum Angular, Reagir e a API REST – vai apresentar uma grande oportunidade e um desafio para os desenvolvedores de temas.
Breve perguntas e respostas com o autômato Jack Lennox
Jack demorou algum tempo em seu trabalho na Automattic para voltar para mim em algumas perguntas que eu postei via e-mail depois que eu tive a chance de processar sua palestra no WordCamp London.
Espero que a entrevista lhe dê algum alimento para pensar sobre onde a API REST pode levar o WordPress. Obrigado Jack!
P: Qual foi o maior desafio que você enfrentou pessoalmente quando um desenvolvedor conseguiu lidar com a API REST?
R: Com o tema, acho a coisa mais difícil de me acostumar com a forma de recriar todas as coisas que você dá para dar certo ao fazer as coisas de maneira convencional. Por exemplo, roteamento; Em um ambiente normal do WordPress, o roteamento não é algo sobre o qual você deve pensar. Há muitos outros desafios relacionados à forma como a API REST vem se desenvolvendo. Por exemplo, exibir widgets, lidar com coisas como a classe do corpo mudando conforme você muda de página para postagem para página, etc.
P. Quais aspectos da API REST você está mais entusiasmado com o uso em projetos futuros?
A: solicitações por lotes. Estes ainda estão em desenvolvimento, mas permitirão que você faça solicitações de vários pontos finais diferentes da API REST em uma solicitação HTTP.
P. Qual é o melhor recurso geral / recursos que você recomendaria a não desenvolvedores / designers que procuram explorar trabalhando com a API REST?
R: Eu acho que os recursos mais úteis em trabalhar com a API REST são baseados no mundo JS. Backbone, por exemplo, é uma estrutura projetada para trabalhar com APIs REST.
O Backbone de aprendizagem me ajudou a entender o que você pode fazer com uma API REST. As amostras TodoMVC da Addy Osmani são incrivelmente úteis para entender os conceitos básicos de todas as estruturas e bibliotecas emergentes do JS, em particular o Backbone .
P: À medida que se abre para a web mais ampla e outras linguagens de programação através da API REST, onde você vê o cabeçalho do WordPress como plataforma em vez de um CMS nos próximos cinco anos?
Eu acho que estamos vendo o WordPress em locais inesperados por algum tempo agora, mas acho que a API REST levará o WordPress a ser usado em ambientes cada vez mais diversos.
Dito isto, acho que o WordPress que conhecemos e amamos hoje ainda estará muito presente de uma forma ou de outra dentro de cinco anos. Veja quantas pessoas ainda usam o Blogger.
Haverá uma demanda por algo que funcione bem fora da caixa, mas talvez veremos mais pessoas criando implementações avançadas interessantes do WordPress que atendem a nichos específicos da maneira que HappyTables faz.
P: Por último, uma questão mais geral, qual a sua parte favorita de ser um Automattician?
R: Ah, há muitas coisas boas em trabalhar na Automattic. Profissionalmente, a minha parte favorita de trabalhar aqui é a enorme riqueza de conhecimento que está disponível para mim dos meus colegas. Temos algumas pessoas seriamente inteligentes nesta empresa e aprendi uma quantidade tão grande desde que entrei há um ano e meio atrás.
Mas, provavelmente, minha parte favorita de ser um Automattician em termos de estilo de vida é a liberdade que a nossa maneira de trabalhar fornece. Como a empresa está distribuída em todo o mundo, somos agnósticos pelo fuso horário. Isso significa que os Automatticians podem trabalhar quando querem, em vez de seguirem prazos arbitrários para trabalhar.
Eu vivo em uma parte muito bonita da Inglaterra, mas também chove muito, então, quando fazemos um bom tempo, não quero ficar preso dentro de trabalhar como a maioria das pessoas, e eu não tenho que ser! Eu posso sair na minha bicicleta de montanha e me divertir.
2. A conversa de K. Adam White sobre Node.js
WordPress in Weird Places: Gerenciamento de Conteúdo para Nó Usando o REST é uma conta fascinante do WordPress sendo usado como o backend do CMS para um aplicativo Node.js em um aplicativo de campo verde para uma empresa Fortune 500.
O principal takeaway disto foi que o poder e a flexibilidade da porção CMS do WordPress como um aplicativo eram suficientes para torná-lo um candidato viável aqui contra a dura concorrência.
Isso é um bom presságio para a futura aceitação do WordPress como um backend no desenvolvimento de aplicativos através da API REST.
Conclusão
Não importa qual área do WordPress você considere sua especialidade, esperamos que as informações acima tenham sido suficientes para despertar seu interesse nas mudanças que derrubam a linha. Eles vão afetar todos.
A incerteza sobre exatamente quando a API JSON REST irá transformá-lo em núcleo não deve impedir que você comece a explorá-lo em seu estado atual. É uma questão de quando, em vez de se isso acontecer, então agora é tão bom quanto qualquer outro para começar a explorar mais e aperfeiçoar seu conjunto de ferramentas.