La solicitud de la API de Categoría descarga todos los temas

Estoy creando análisis sobre el uso de nuestro foro y descargo información sobre los temas de cada categoría.

Sin embargo, la solicitud no extrae todos los temas todo el tiempo. Solo me di cuenta de esto porque anteriormente había extraído algunos temas que ahora desaparecieron de nuestro último informe.

Ejemplo:

El tema está ahí cuando abro la página de la categoría en el navegador.

El 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 qué sucede esto y cómo puedo solucionarlo?

Entonces deberías usar el plugin Data Explorer.

Consulta Discourse Data Explorer y Cómo ejecutar consultas de Data Explorer con la API de Discourse.

1 me gusta

Gracias, pero actualmente no podemos instalar ese plugin. ¿Podemos hacer algo para arreglar la API?

Este es un plugin oficial, estable y bien mantenido, ¿qué te impide instalarlo?

La interfaz de usuario utiliza un sistema de paginación para descargar cada conjunto de temas. Probablemente por eso no puedes verlos todos.

Comprueba la consulta que tu navegador está enviando para ver ejemplos de cada llamada (consulta la pestaña de red).

Sin embargo, como señala acertadamente @pfaffman, esta no es la forma más adecuada de obtener datos para análisis, ya que está optimizada para la interfaz de usuario.

1 me gusta