Ich habe eine WordPress.org-Site, die Benutzereingaben entgegennimmt, eine benutzerdefinierte Datenbank durchsucht und die Ergebnisse der Abfrage anzeigt. Ich habe dies mit der wpdb-Klasse arbeiten . Jetzt versuche ich, dies für eine Android-App zum Laufen zu bringen.
Soweit ich weiß, ist das Erstellen eines RESTful-Servers die derzeitige "Best Practice" für diese Art von Dingen. Ich habe mir einige Plugins angesehen, die mir dabei helfen könnten, und bin auf Folgendes gestoßen:
json-rest-api - Es scheint mir, dass dies nur die Kernfunktionalität von WordPress (dh Beiträge, Seiten, Benutzer usw.) verfügbar macht, und ich kann nicht sehen, wie dies dazu führt, dass benutzerdefinierte Abfragen für nicht standardmäßige Tabellen ausgeführt werden.
Dieser Blog-Beitrag sagt, dass wp mvc genau das tut, was ich will, außer dass es seit über 2 Jahren nicht mehr aktualisiert wurde, so dass dies irgendwie ausgeschlossen ist.
Es gibt auch Jetpack, aber nach dem, was ich gesehen habe, ist die json-rest-api die aktualisierte Version davon und scheint nur Kernfunktionen zu bieten.
Gibt es eine Möglichkeit, eines dieser Plugins für benutzerdefinierte Endpunkte zu verwenden? Oder gibt es andere Plugins, die ich noch nicht gefunden habe?
Wenn ich kein Plugin benutze, müsste ich wohl mein eigenes rollen. Ich kann dies entweder von Grund auf (unter Verwendung von wpdb
, msqli
oder etwas), oder mit Hilfe einer API wie Restler .
Wenn ich meine eigene Rolle mache, sollte ich eine Vorlage in meinem Thema erstellen, die REST-Aufgaben dort ausführen und dieses Thema einer Seite im Dashboard zuweisen? Oder wäre es besser, wenn ein anderer Server separat von WordPress ausgeführt würde?
Soweit ich sehen kann, sind dies meine einzigen Optionen. Ich würde gerne wissen, welche Best Practices für diese Art von Dingen empfohlen werden. Es fällt mir schwer zu glauben, dass dies niemand anderes getan hat. Gibt es Optionen, die ich übersehen habe?
Antworten:
TL; DR
Ja, WordPress kann sicherlich als Backend für eine mobile App fungieren. Ja, eine Seite kann als Ruheendpunkt / Schnittstelle dienen. Nein, eine Themenvorlage ist nicht das richtige Gebiet für die Logik. Schreiben Sie Ihr eigenes Plugin.
Zeiger
Ich jedenfalls habe. Mehr als einmal. Und ich bin mir fast sicher, dass ich nicht allein bin. "Niemand hat ausführlich darüber gebloggt" ist wahrscheinlich die korrektere Vorstellung.
Ich kenne "Restler" nicht und das ist auf diesem Stack sowieso nicht möglich.
Was "Verwenden von wpdb, msqli oder etwas" betrifft: Sie würden sicherlich verwenden
wpdb
, um (empfangene) Daten in der Datenbank zu speichern, aber dies ist für die Endpunktlogik nicht relevant.Eine Themenvorlage ist nicht das, worauf Sie achten sollten. Themen sind für die visuelle Präsentation gedacht. Ein REST-Endpunkt benötigt überhaupt kein visuelles Erscheinungsbild.
Fügen Sie den Endpunkt über einen Shortcode in die Seite ein, die Sie dafür verwenden möchten .
Lassen Sie den Shortcode-Handler / Rückruf entweder HTTP POST oder GET abhören und rufen Sie die Datenspeicherung oder andere sekundäre Methoden entsprechend auf.
Ist es sinnvoll, WordPress als Endpunkt / Backend zu verwenden?
Es hängt davon ab, ob.
Wenn Sie lediglich einen Endpunkt zum Speichern von Daten benötigen: Nein. Das Laden des gesamten Kerns, um nur ein paar Codezeilen mithilfe von zu speichern,
wpdb
lohnt sich nicht.Wenn Sie ein Backend benötigen, das über einen Webbrowser angemeldet werden kann, das Tabellendaten anzeigt, Möglichkeiten zum Ändern dieser Daten bietet, möglicherweise sogar mit mehreren Zugriffsebenen / Benutzerrollen und -rechten, dann ist dies sinnvoll.
quelle
wpdb
es sich nicht lohnt, den gesamten Kern zu laden, um nur ein paar Codezeilen zu speichern .Das API-Endpunkt- Plugin sollte alle Ihre Anforderungen abdecken, insbesondere wenn Sie mit MySQL vertraut sind. Sie würden die folgenden Schritte ausführen:
Erstellen Sie eine neue Twig-Vorlage, geben Sie Ihre MysQL-Abfrage ein, um Daten von Ihrer WordPress-Site abzurufen, und geben Sie die Daten mithilfe der Twig-Syntax in einem beliebigen Format aus. Zum Beispiel JSON.
Erstellen Sie einen neuen API-Endpunkt, geben Sie ihm einen Namen und konfigurieren Sie ihn für die Verwendung der in Schritt 1 erstellten Zweigvorlage.
Wiederholen Sie anschließend die Schritte 1 und 2 für jeden Endpunkt, den Sie erstellen möchten. API-Endpunkte verwenden das Standard-WordPress-Authentifizierungssystem. Erstellen Sie daher am besten einen separaten Benutzer in WordPress und verwenden Sie dessen Benutzernamen / Kennwort, um auf Ihre API-Endpunkte zuzugreifen.
quelle
Die neue Version der WP REST-API befindet sich in der Beta-Version, enthält jedoch eine recht gute Dokumentation zum Registrieren benutzerdefinierter REST-Endpunkte. Es gibt auch einen sehr kleinen Klappentext darüber, wie es in Version 1 gemacht werden könnte, den ich ausprobieren werde, da die Beta nicht garantiert stabil ist oder bleibt. Ich gehe davon aus, dass Sie dann wpdb innerhalb der von Ihnen registrierten Methoden verwenden können. Ich verwende eigentlich nur ACF-Material und besetze es in Objekte in meinem PHP, um eine schöne, durchsuchbare / sortierbare Indexseite mit mehreren Eigenschaften mit angleJS zu erstellen.
Vergleich zwischen WWP REST API 1 und 2 aus ihren Dokumenten
quelle