Eu tenho um site WordPress.org que recebe a entrada do usuário, pesquisa um banco de dados personalizado e exibe os resultados da consulta. Eu tenho esse trabalho usando a classe wpdb . Agora estou tentando fazer isso funcionar em um aplicativo Android.
Pelo que entendi, a criação de um servidor RESTful é a 'melhor prática' atual para esse tipo de coisa. Analisei alguns plugins que poderiam me ajudar a fazer isso e me deparei com:
json-rest-api - Parece-me que isso apenas expõe a funcionalidade principal do WordPress (ou seja, postagens, páginas, usuários etc.) e não consigo ver como fazer isso para executar consultas personalizadas em tabelas não padrão.
Esta postagem do blog diz que o wp mvc faz exatamente o que eu quero, exceto que não é atualizado há mais de 2 anos, então isso meio que exclui isso.
Também existe o Jetpack, mas pelo que vi, o json-rest-api é a versão atualizada disso e parece fornecer apenas as principais funcionalidades.
Existe uma maneira de fazer qualquer um desses plugins funcionar para pontos de extremidade personalizados? Ou existem outros plugins que ainda não encontrei?
Se eu não usar um plugin, acho que teria que usar o meu próprio. Eu posso fazer isso a partir do zero (usando wpdb
, msqli
ou algo assim), ou com a ajuda de uma API como Restler .
Se eu criar o meu próprio, devo criar um modelo no meu tema, faça o resto do REST e atribua esse tema a uma página no painel? Ou seria melhor ter outro servidor rodando separado do WordPress para isso?
Tanto quanto posso ver, essas são minhas únicas opções. Gostaria de saber quais são as melhores práticas recomendadas para esse tipo de coisa. Acho difícil acreditar que ninguém mais tenha feito isso. Existem opções que eu tenha esquecido?
Respostas:
TL; DR
Sim, o WordPress certamente pode funcionar como um back-end para um aplicativo móvel. Sim, uma página pode atuar como um terminal / interface restante. Não, um modelo de tema não é o território certo para a lógica. Escreva seu próprio plugin.
Ponteiros
Eu, por exemplo, tenho. Mais de uma vez. E tenho quase certeza de que não estou sozinha. "Ninguém escreveu extensivamente sobre o blog" é provavelmente a noção mais correta.
Eu não sei "Restler" e isso está fora do escopo nesta pilha de qualquer maneira.
No que diz respeito a "usar wpdb, msqli ou algo assim": você certamente usaria
wpdb
para salvar dados (recebidos) no banco de dados, mas isso não é pertinente à lógica do nó de extremidade.Um modelo de tema não é o que você deve procurar. Os temas são destinados à apresentação visual. Um terminal REST não precisa de uma aparência visual.
Insira o terminal na página que você deseja usar por meio de um código de acesso .
Faça com que o manipulador de shortcode / retorno de chamada ouça HTTP POST ou GET e invoque o salvamento de dados ou outros métodos secundários de acordo.
Faz sentido usar o WordPress como um ponto final / back-end?
Depende.
Se tudo o que você precisa é de um terminal para salvar dados: Não. Carregar o núcleo inteiro apenas para salvar algumas linhas de código usando
wpdb
não vale a pena.Se você precisar de um back-end que possa fazer login por meio de um navegador da Web, que possa exibir dados tabulares, ofereça maneiras de alterar os dados, talvez mesmo com vários níveis de acesso / funções e direitos de usuário, então sim, isso faz sentido.
fonte
wpdb
Não vale a pena carregar o núcleo inteiro apenas para salvar algumas linhas de código usando ".O plug-in API Endpoints deve cobrir todas as suas necessidades, especialmente se você estiver familiarizado com o MySQL. Você faria os seguintes passos:
Crie um novo modelo Twig, insira sua consulta MysQL para buscar dados do seu site WordPress e use a sintaxe Twig para gerar os dados em qualquer formato. Por exemplo, JSON.
Crie um novo terminal de API, atribua um nome e configure-o para usar o Twig Template que você criou na etapa 1.
Depois de concluído, repita as etapas 1 e 2 para cada nó de extremidade que você deseja criar. Os pontos de extremidade da API usam o sistema de autenticação padrão do WordPress, portanto, seria melhor criar um usuário separado no seu WordPress e usar seu nome de usuário / senha para acessar seus pontos de extremidade da API.
fonte
A nova versão da API WP REST está na versão beta, mas possui uma documentação bastante boa sobre como registrar pontos de extremidade REST personalizados. Há também um pequeno resumo sobre como isso poderia ser feito na versão 1, que vou experimentar, já que o beta não é garantido ou permanece estável. Presumo que você possa usar o wpdb de dentro dos métodos registrados. Na verdade, estou apenas usando coisas do ACF e apropriando-as de objetos no meu php para criar uma página de índice de várias propriedades agradável, pesquisável / classificável com angularJS.
Comparação entre a API REST 1 e 2 da WWP a partir de seus documentos
fonte