Sto creando una query con Data Explorer utilizzando le API. Ho difficoltà a trovare la chiamata API effettiva per creare una query.
Esiste un endpoint per eseguire la query /admin/plugins/explorer/queries/<query_id>/run; tuttavia, non vedo come crearla.
Qualcuno può aiutarmi?
pfaffman
(Jay Pfaffman)
2
Grazie per aver condiviso l’articolo di Reverse engineer the discourse API;
L’ho esaminato e ho capito che dovrebbero essere effettuate due chiamate separate.
La prima dovrebbe essere la chiamata POST a /admin/plugins/explorer/queries, che genererà l’ID associato alla query.
In secondo luogo, la chiamata PUT deve essere effettuata su /admin/plugins/explorer/queries/id per modificare la query predefinita.
Ma mi chiedo se ci sia una disposizione per creare la query (effettuando una singola chiamata API) direttamente senza conoscere l’ID.
Fatemi sapere se è possibile.
Dovresti essere in grado di effettuare una richiesta POST con gli stessi valori del payload di PUT.
Hai provato?
Ecco la query che ho provato effettuando una chiamata API POST.
curl -X POST https://api-discourse-XXXXXXXXXXXXX/admin/plugins/explorer/queries
-H “Content-Type: multipart/form-data;”
-H “Api-Key: 46811cc32XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX”
-H “Api-Username: abcdefg2”
-F ‘query={“name”:“test1234”, “sql”:“SELECT * FROM topics”}’
Tuttavia, sto ricevendo un errore come segue.
{“status”:500,“error”:“Internal Server Error”}%
Non sono sicuro di cosa possa essere sbagliato.
Penso che il modo corretto sia il seguente:
-F 'query[name]=test1234'
-F 'query[sql]=SELECT * FROM topics'
Grazie @Arkshine per l’aiuto.
Ha funzionato..!!