Come creare una query per il data explorer con le API?

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?

Hai provato a fare il reverse engineering dell’API di Discourse?

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