Pagination¶
Keyset (Cursor) Pagination¶
The following snippet pages through the audit logs, which uses keyset pagination, starting from the most recent entries, 25 entries at a time.
- Obtain the server URL and API Key from environment variables.
- Call the "Get audit logs" endpoint to get the first page. See the API Documentation for more information.
- Parse the response using
httr::content
. - Print the current page.
- Repeat steps 1 through 3 until there are no more results. Note also
that the
paging.next
property in the response is the URL of the next page.
# set up environment
library(httr)
# Note that the connectServer string must have a trailing slash
connectServer <- Sys.getenv("CONNECT_SERVER")
apiKey <- Sys.getenv("CONNECT_API_KEY")
# get audit logs
authHeader <- add_headers(Authorization = paste("Key", apiKey))
resp <- GET(
paste0(connectServer, "__api__/v1/audit_logs?ascOrder=false&limit=25"),
authHeader
)
payload <- content(resp)
# print first 25!
print(payload$results)
# now step through the remaining audit logs
while(!is.null(payload$paging[["next"]])) {
resp <- GET(payload$paging[["next"]], authHeader)
payload <- content(resp)
# print the next 25
print(payload$results)
}
Offset Pagination¶
The following snippet pages through the user's list, which uses offset pagination, 25 entries at a time.
- Obtain the server URL and API Key from environment variables.
- Call the "Get all users" endpoint to get the first page. See the API Documentation for more information.
- Parse the response using
httr::content
. - Print the current page.
- Repeat steps 1 through 3 until there is no more "next" page. Note
also that the query parameter
page_number
determines the page to return.
# set up environment
library(httr)
# Note that the connectServer string must have a trailing slash
connectServer <- Sys.getenv("CONNECT_SERVER")
apiKey <- Sys.getenv("CONNECT_API_KEY")
# get user's list
authHeader <- add_headers(Authorization = paste("Key", apiKey))
apiPrefix <- "__api__/v1/users?page_size=25"
resp <- GET(
paste0(connectServer, apiPrefix),
authHeader
)
# get the first page
payload <- content(resp)
# and step through the pages, printing out the results (if any)
while(length(payload$result) > 0) {
# print the result
print(payload$results)
# get the next page
nextPage <- payload$current_page + 1
resp <- GET(
paste0(connectServer, apiPrefix, "&page_number=", nextPage),
authHeader
)
payload <- content(resp)
}