Hey,
I am using Confluence Cloud and have a CQL query that intentionally results in many results (>1000) in our Confluence space. The response of the Confluence API to my Confluence.cql() call is a paginated response, where the first 250 items (seems to be the max for our Cloud instance) are contained in the [results] and the next 250 results can be retrieved by calling the next link defined in ['_links']['next'].
I was able to use the Confluence._get_paged() function in my code to retrieve all results but it seems that Confluence.cql() should (or at least could) return all results directly.
This is my solution as minimal example:
from atlassian import Confluence
import itertools
confluence = Confluence(url="https://MYCOMPANY.atlassian.net/",
username="name@company.com",
password="password")
cql_query = 'type=page' # CQL query with for all pages = many results
response = confluence.cql(cql, limit=250) # response contains first 250 results and link to the next 250 results
url_next = response.get('_links', {}).get('next') # get relative next result address
if url_next is not None:
results_generator = itertools.chain(response.get('results'),
confluence._get_paged(url=url_next))
results = list(results_generator)
else:
results = response.get('results', [])
Is there another way to directly get all results that I did not see yet? Or a more efficient or elegant?
Confluence._get_paged() seems to be build for exactly this use case but is not integrated in Confluence.cql(). Could this be integrated into Confluence.cql()? I am new to the topic and therefore not sure about implications or expected behavior.
Thanks in advance
Paul
Hey,
I am using Confluence Cloud and have a CQL query that intentionally results in many results (>1000) in our Confluence space. The response of the Confluence API to my
Confluence.cql()call is a paginated response, where the first 250 items (seems to be the max for our Cloud instance) are contained in the[results]and the next 250 results can be retrieved by calling the next link defined in['_links']['next'].I was able to use the
Confluence._get_paged()function in my code to retrieve all results but it seems thatConfluence.cql()should (or at least could) return all results directly.This is my solution as minimal example:
Is there another way to directly get all results that I did not see yet? Or a more efficient or elegant?
Confluence._get_paged()seems to be build for exactly this use case but is not integrated inConfluence.cql(). Could this be integrated intoConfluence.cql()? I am new to the topic and therefore not sure about implications or expected behavior.Thanks in advance
Paul