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
1 Mi Piace
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?
1 Mi Piace
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'
2 Mi Piace
Grazie @Arkshine per l’aiuto.
Ha funzionato..!!
1 Mi Piace