Pagination
Provides the ability to separate and traverse through pages of data.
Various APIs provide the ability to query results in a paginated form. These APIs will typically have an optional nextToken
input property to facilitate pagination. By default, if a limit is not provided, or set as undefined/nil/null
, the default limit will be 10.
The following types support pagination:
Funding Sources
Virtual Cards
Transactions
If intending to use pagination, the first call to an API should not include a nextToken
, otherwise the result will return an error. When a paginated API call is successful, the output response will contain a nextToken
property.
When using a query that supports pagination, it is important to always check the nextToken
. Due to the nature of the data access from the service, it is possible to retrieve a result with no data but potentially have another page of information to retrieve which may contain results
To access the next page of a query API, use the previously returned nextToken
in the subsequent API call. If a successful response does not return a nextToken
, or it is set to undefined/nil/null
, the pagination results have been exhausted and there are no more pages to retrieve.
When using subsequent calls for pagination, ensure that the input information (e.g. limit
, filter
) is the same for each call, otherwise unexpected behavior will occur. For example, if the first call uses an input property of limit = 8
, then each subsequent call must use a limit
of 8
.
Pagination Example
Below is an example usage of listFundingSources(withLimit:)
for a user with 4 funding sources:
do {
var output = try await client.listFundingSources(withLimit: 2, nextToken: nil)
/*
* This result will contain an `items` array of 2 Funding source objects, as
* well as a non-`nil` `nextToken` which is used in the subsequent call.
*/
output = try await client.listFundingSources(withLimit: 2, nextToken: output?.nextToken)
/*
* This result will also contain 2 objects in the `items` array, however the
* `nextToken` will be `nil`, as there are no more objects for the user to
* fetch.
*/
} catch {
// Handle and cleanup after error.
}
Last updated