Rest-API-Anfrage einschließlich Meta-Abfrage-Filter

Ich erstelle einen Web-Service mit der WP REST API v.2. Ist es möglich, einen meta_query-Filter einzufügen, wenn Sie einen benutzerdefinierten Post-Typ anfordern?

Wenn ich zum Beispiel WP_Query , könnte ich WP_Query tun:

 $args = array( 'post_type' => 'proposal', 'posts_per_page' => -1, 'meta_query' => array( array( 'key' => 'deadline', 'value' => current_time( 'm/d/Y' ), 'compare' => '>=', ) ) ); $proposals_query = new WP_Query( $args ); 

Ist es möglich, dasselbe in einer REST-Anfrage zu erreichen? Das Beispielziel wäre, den Dienst wissen zu lassen, dass der Client eine Antwort wünscht, die nur Beiträge enthält, die die Bedingungen der Meta-Abfrage erfüllen. Ich denke, ich könnte eine Variable in der Anfrage senden und diese verwenden, um eine Meta-Abfrage in einem benutzerdefinierten Endpunkt zu erstellen …? Ich frage mich, ob es eine empfohlene Vorgehensweise gibt.

Solutions Collecting From Web of "Rest-API-Anfrage einschließlich Meta-Abfrage-Filter"

Vielleicht nicht genau die Antwort, die du suchst, aber hier geht es ….

Die Rest-API, wie sie in WordPress-core implementiert ist, ist ein Hohn, wie APIs entworfen werden sollten und je weniger Sie sie verwenden, desto besser. Offensichtlich ist es nur dumm, keine core-API zu verwenden, die genau das tut, was Sie brauchen, aber für alles andere sollten Sie nur Ihre eigenen APIs schreiben.

Die Rest-API ist als Remote-Aufruf konzipiert, um interne APIs auszuführen, anstatt eine sehr spezifische Aktion auszuführen. Dies führt zu zwei großen Problemen

  1. Informationsleck. Die API gibt viel mehr zurück, als Sie benötigen, und einige der zurückgegebenen Informationen sollten aufgrund von Datenschutz- und Sicherheitsbedenken überhaupt nicht zurückgegeben werden. Wenn ich weiß, was die Autoren-ID und Ihre WP-Version und Plugins sind, kann ich möglicherweise einen Angriff auf Ihre Website durchführen.

  2. Eine nicht optimale Datenstruktur, die dazu führen könnte, dass Sie zwei DB-Abfragen auf der Serverseite durchführen, führt Sie zu zwei HTTP-Anfragen, was viel mehr Zeit in Anspruch nimmt und die Serverlast erhöht. Du könntest es sehen (ich hoffe nur, dass sie es behoben haben), wenn du eine zusätzliche Anfrage machen musst, um das Thumbnail des Posts zu erhalten, da es nicht zur DB-Struktur des Posts gehört, sondern zu der des Anhangs.

Ihre Frage weist darauf hin, dass die Probleme noch weiter ausgedehnt werden und nicht nur die Benutzer wissen, welchen Post-Typ Sie verwenden, sondern auch welche Metadaten Sie haben und in welchem ​​Format sie sind.

Was Sie tun sollten, ist Ihren eigenen Endpunkt und Ihre eigene API zu schreiben, die nur das akzeptiert, was sie benötigt, und zurückgibt, was der Benutzer tatsächlich benötigt.

Und außerdem lassen Sie niemanden alle Ihre Beiträge abfragen, dies ist nur eine Einladung zu einem einfachen DOS-Angriff gegen die Seite.