Wie man die topics_with_no_response.json API mit Filtern abfragt

Ich weiß, dass es für jeden Admin-Bericht eine .json-API gibt, um die Daten abzurufen. Der Bericht, an dem ich interessiert bin, ist topics_with_no_response, und ich konnte über https://xxx.com/admin/reports/topics_with_no_response?end_date=2023-06-16&filters=%7B%22category%22%3A7%2C%22include_subcategories%22%3Atrue%7D&mode=table&start_date=2023-06-14 nach Kategorie filtern. Wenn ich jedoch über https://xxx.com/admin/reports/topics_with_no_response.json?end_date=2023-06-16&filters=%7B%22category%22%3A7%2C%22include_subcategories%22%3Atrue%7D&mode=table&start_date=2023-06-14 zum JSON-Endpunkt wechselte, wurden die Daten nicht zurückgegeben.

Haben wir eine andere Syntax, um diese beiden Endpunkte abzufragen?

Sie müssen aus irgendeinem seltsamen Grund POST anstelle von GET verwenden.

Hallo @RGJ,

Könnten Sie mir ein Beispiel für die POST-Anfrage geben? Was sollte der Body sein? Ich habe versucht, GET einfach in POST mit derselben URL zu ändern, aber es scheint nicht zu funktionieren.

Sie müssen offensichtlich die Query-Parameter (d. h. alles nach dem ?) als POST-Daten übergeben.

Siehe auch Run Data Explorer queries with the Discourse API

Als ich zu POST wechselte und alle Abfrageparameter als POST-Daten übergab, erhielt ich „Seite nicht gefunden“. Ich konnte jedoch POST verwenden, um Data Explorer-Abfragen auszuführen. Haben Sie irgendwelche Ideen? Danke!

Schauen Sie sich Reverse engineer the Discourse API an. Wenn ich diesen Ansatz für den Bericht „Topics With no Response“ versuche, sehe ich, dass er GET-Anfragen macht, ähnlich wie:\n\nhttp://forum.example.com/admin/reports/bulk?reports%5Btopics_with_no_response%5D%5Bfacets%5D%5B%5D=prev_period&reports%5Btopics_with_no_response%5D%5Bstart_date%5D=2022-02-01&reports%5Btopics_with_no_response%5D%5Bend_date%5D=2023-06-17&reports%5Btopics_with_no_response%5D%5Blimit%5D=50\n\nSie können die kodierten Query-Parameter im Netzwerk-Tab des Inspektors Ihres Browsers abrufen. Mit dieser URL sollten Sie etwas Ähnliches tun können:\n\n\ncurl -X GET \"http://localhost:4200/admin/reports/bulk.json?reports%5Btopics_with_no_response%5D%5Bfacets%5D%5B%5D=prev_period&reports%5Btopics_with_no_response%5D%5Bstart_date%5D=2022-05-16&reports%5Btopics_with_no_response%5D%5Bend_date%5D=2022-09-10&reports%5Btopics_with_no_response%5D%5Blimit%5D=50\" \\\n-H \"Api-Key: $api_key\" \\\n-H \"Api-Username: system\"\n\n\nSie müssen api_key auf einen globalen API-Schlüssel für alle Benutzer setzen – ich glaube nicht, dass es einen bestimmten Bereich gibt, der für die Berichte verwendet werden kann.\n\nBeachten Sie, dass Sie die json-Erweiterung zur URL hinzufügen müssen (http://localhost:4200/admin/reports/bulk.json)

1 „Gefällt mir“

Danke @simon, das funktioniert!!

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.