Tengo un sitio de WordPress.org que toma la entrada del usuario, busca en una base de datos personalizada y muestra los resultados de la consulta. Tengo esto trabajando usando la clase wpdb . Ahora estoy tratando de hacer que esto funcione para una aplicación de Android.
Por lo que entiendo, construir un servidor RESTful es la 'mejor práctica' actual para este tipo de cosas. He buscado algunos complementos que podrían ayudarme a hacer esto, y he encontrado:
json-rest-api : me parece que esto solo expone la funcionalidad principal de WordPress (es decir, publicaciones, páginas, usuarios, etc.) y no puedo ver cómo hacer que esto ejecute consultas personalizadas en tablas no predeterminadas.
Esta publicación de blog dice que wp mvc hace exactamente lo que quiero, excepto que no se ha actualizado en más de 2 años, por lo que eso descarta un poco.
También hay Jetpack, pero por lo que he visto, la json-rest-api es la versión actualizada de esto y parece que solo proporciona funcionalidad básica.
¿Hay alguna manera de hacer que alguno de estos complementos funcione para puntos finales personalizados? ¿O hay otros complementos que aún no he encontrado?
Si no uso un complemento, me imagino que tendría que rodar el mío. Puedo hacer esto desde cero (usando wpdb
, msqli
o algo así), o con la ayuda de una API como Restler .
Si hago mi propio rollo, ¿debería crear una plantilla en mi tema, hacer las cosas REST allí y asignar ese tema a una página dentro del tablero? ¿O sería mejor tener otro servidor que se ejecute por separado para WordPress para esto?
Hasta donde puedo ver, estas son mis únicas opciones. Me gustaría saber cuáles son las mejores prácticas recomendadas para este tipo de cosas. Me resulta difícil creer que nadie más haya hecho esto. ¿Hay alguna opción que haya pasado por alto?
Respuestas:
TL; DR
Sí, WordPress ciertamente puede actuar como un back-end para una aplicación móvil. Sí, una página puede actuar como punto final / interfaz de descanso. No, una plantilla de tema no es el territorio adecuado para la lógica. Escribe tu propio complemento.
Punteros
Yo, por mi parte, tengo. Mas de una vez. Y estoy casi seguro de que no estoy solo. "Nadie ha blogueado extensamente al respecto" es probablemente la noción más correcta.
No sé "Restler" y eso está fuera de alcance en esta pila de todos modos.
En lo que respecta a "usar wpdb, msqli o algo así": sin duda lo usaría
wpdb
para guardar datos (recibidos) en la base de datos, pero no es pertinente para la lógica del punto final.Una plantilla de tema no es lo que debe mirar. Los temas están destinados a la presentación visual. Un punto final REST no necesita una apariencia visual en absoluto.
Inserte el punto final en la página que desea utilizar a través de un código corto .
Haga que el controlador de shortcode / devolución de llamada escuche HTTP POST o GET e invoque el almacenamiento de datos u otros métodos secundarios en consecuencia.
¿Tiene sentido usar WordPress como punto final / backend?
Depende.
Si todo lo que necesita es un punto final para guardar datos: No.
wpdb
No vale la pena cargar todo el núcleo solo para guardar algunas líneas de código .Si necesita un backend que se puede iniciar sesión a través de un navegador web, que puede mostrar datos tabulares, ofrecer formas de alterar dichos datos, tal vez incluso con múltiples niveles de acceso / roles y derechos de usuario, entonces sí, tiene sentido.
fuente
wpdb
No vale la pena cargar el núcleo completo solo para guardar algunas líneas de código ".El complemento API Endpoints debería cubrir todas sus necesidades, especialmente si está familiarizado con MySQL. Seguirías los siguientes pasos:
Cree una nueva plantilla Twig, ingrese su consulta MysQL para obtener datos de su sitio de WordPress y use la sintaxis Twig para generar los datos en cualquier formato. Por ejemplo, JSON.
Cree un nuevo punto final API, asígnele un nombre y configúrelo para usar la Plantilla Twig que creó en el paso 1.
Una vez hecho esto, repita los pasos 1 y 2 para cada punto final que desee crear. Los puntos finales API utilizan el sistema de autenticación estándar de WordPress, por lo que sería mejor crear un usuario separado en su WordPress y usar su nombre de usuario / contraseña para acceder a sus puntos finales api.
fuente
La nueva versión de WP REST API está en Beta, pero tiene bastante buena documentación sobre cómo registrar puntos finales REST personalizados. También hay una pequeña propaganda sobre cómo se podría hacer en la versión 1, que voy a probar ya que no se garantiza que la versión beta sea estable. Supongo que podría usar wpdb desde los métodos que registra. En realidad, solo estoy usando cosas de ACF y las prepongo en objetos en mi php para crear una página de índice de múltiples propiedades agradable, buscable / clasificable con angularJS.
Comparación entre WWP REST API 1 y 2 de sus documentos
fuente