API de Categoria baixa todos os tópicos

Estou criando análises sobre o uso do nosso fórum e baixando informações sobre os tópicos de cada categoria.

No entanto, a solicitação não puxa todos os tópicos o tempo todo. Só percebi isso porque anteriormente puxou alguns tópicos que agora desapareceram do nosso último relatório.

Exemplo:

O tópico está lá quando abro a página da categoria no navegador.

O código que uso:

from dotenv import load_dotenv
import os
import requests

load_dotenv()

headers = {
    "Content-Type": "application/json",
    "Api-Username": os.environ["USERNAME"],
    "Api-Key": os.environ["API_KEY"],
}

method = "GET"
url = "https://forum.aragon.org/c/proposals-for-main-dao/50.json"

response = requests.request(method, url, headers=headers)
topics = response.json()["topic_list"]["topics"]

found_topics = list()
for topic in topics:
    found_topics.append(topic["id"])

print(sorted(found_topics))

{topic: topic in found_topics for topic in [3519, 3528]}

>>>
[3075, 3224, 3299, 3312, 3449, 3472, 3474, 3526, 3554, 3555, 3557, 3583, 3586, 3592, 3613, 3624, 3626, 3659, 3674, 3677, 3680, 3694, 3695, 3699, 3702, 3710, 3716, 3720, 3725, 3737]

{3519: False, 3528: False}

Por que isso está acontecendo e como posso corrigir?

Então você deve usar o plugin explorador de dados.

Veja Discourse Data Explorer e Como executar consultas do Data Explorer com a API do Discourse.

1 curtida

Obrigado, mas atualmente não podemos instalar esse plugin. Podemos fazer algo para corrigir a API?

Este é um plugin oficial, estável e bem mantido, o que o impede de instalá-lo?
A interface do usuário usa um sistema de paginação para baixar cada conjunto de tópicos. É por isso que você provavelmente não consegue vê-los todos.
Verifique a consulta que seu navegador está enviando para exemplos de cada chamada (veja a aba de rede)
No entanto, como @pfaffman aponta corretamente, esta não é a maneira mais apropriada de obter dados para análise, pois é otimizada para a interface do usuário.

1 curtida