Comment créer une requête d'explorateur de données avec les API ?

Je suis en train de créer une requête avec l’explorateur de données avec les API. J’ai du mal à trouver l’appel d’API réel pour créer une requête.

Il existe un point de terminaison pour exécuter la requête /admin/plugins/explorer/queries/<_query_id>/run ; cependant, je ne vois pas comment la créer.

Quelqu’un peut-il m’aider ?

Avez-vous essayé d’ingénierie inverse de l’API Discourse ?

1 « J'aime »

Merci d’avoir partagé l’article Reverse engineer the discourse API ;

Je l’ai parcouru et j’ai réalisé que deux appels distincts devaient être effectués.

Le premier devrait être l’appel POST à /admin/plugins/explorer/queries, qui générera l’ID associé à la requête.

Deuxièmement, l’appel PUT doit être effectué sur /admin/plugins/explorer/queries/id pour modifier la requête par défaut.

Mais je me demande s’il existe une disposition pour créer la requête (en effectuant un seul appel API) directement sans connaître l’ID.

Faites-moi savoir si c’est possible.

Vous devriez pouvoir faire une requête POST avec les mêmes valeurs de charge utile que PUT.
Avez-vous essayé ?

1 « J'aime »

Voici la requête que j’ai essayée en effectuant un appel 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”}’

Cependant, je reçois une erreur comme ci-dessous.

{“status”:500,“error”:“Internal Server Error”}%

Je ne suis pas sûr de ce qui pourrait être erroné.

Je pense que la bonne façon est la suivante :

-F 'query[name]=test1234'
-F 'query[sql]=SELECT * FROM topics'
2 « J'aime »

Merci @Arkshine pour ton aide.

Ça a marché..!!

1 « J'aime »