Estou no processo de criar uma consulta com o explorador de dados com as APIs. Estou tendo dificuldades em encontrar a chamada de API real para criar uma consulta.
Existe um endpoint para executar a consulta /admin/plugins/explorer/queries/\u003cquery_id\u003e/run ; no entanto, não vejo como criá-la.
Alguém pode ajudar?
pfaffman
(Jay Pfaffman)
Novembro 8, 2023, 5:09am
2
1 curtida
Obrigado por compartilhar o artigo de Engenharia reversa da API do Discourse ;
Eu o analisei e percebi que duas chamadas separadas precisam ser feitas.
A primeira deve ser a chamada POST para /admin/plugins/explorer/queries , que gerará o ID associado à consulta.
Em segundo lugar, a chamada PUT precisa ser feita em /admin/plugins/explorer/queries/id para editar a consulta padrão.
Mas estou me perguntando se há uma provisão para criar a consulta (fazendo uma única chamada de API) diretamente, sem saber o ID.
Me diga se isso é possível.
Você deve ser capaz de fazer uma requisição POST com os mesmos valores de payload que PUT.
Você tentou?
1 curtida
Aqui está a consulta que tentei ao fazer uma chamada de 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”}’
No entanto, estou recebendo um erro como abaixo.
{“status”:500,“error”:“Internal Server Error”}%
Não tenho certeza do que pode estar errado.
Eu acho que a maneira correta é a seguinte:
-F 'query[name]=test1234'
-F 'query[sql]=SELECT * FROM topics'
2 curtidas
Obrigado @Arkshine pela ajuda.
Funcionou..!!
1 curtida