Skip to content

Pagination

OpenCloud APIs that return an array of results support pagination.

go
package main

import (
    "context"
    "fmt"

    "github.com/typical-developers/goblox/opencloud"
)

func main() {
    ctx := context.Background()
    client := opencloud.NewClient().WithAPIKey("YOUR_API_KEY")

    options := &opencloud.Options{
        MaxPageSize: opencloud.Pointer(100),
    }

    var inventory []*opencloud.InventoryItem
    for {
        items, resp, err := client.UsersAndGroups.ListInventoryItems(ctx, "USER_ID", options)
        if err != nil {
            return
        }

        inventory = append(inventory, items.InventoryItems...)
        if !items.NextPageToken {
            break
        }

        options.PageToken = opencloud.Pointer(items.NextPageToken)
    }
}