Skip to main content

Paginazione REST

Le liste REST sono paginate per offset, con i parametri limit e offset.

Parametri

ParametroTipoDefaultDescrizione
limitint100Numero massimo di elementi da restituire
offsetint0Numero di elementi da saltare dall'inizio

Struttura della risposta

{
  "items": [...],
  "count": 1250
}
  • items: gli elementi della pagina
  • count: il totale dei risultati, indipendente da limit e offset

Esempio

Prima pagina (20 elementi):

curl -H "Authorization: Bearer YOUR_TOKEN" \
  "https://core.riseact.org/api/v1/supporters/?limit=20&offset=0"

Seconda pagina:

curl -H "Authorization: Bearer YOUR_TOKEN" \
  "https://core.riseact.org/api/v1/supporters/?limit=20&offset=20"

Risposta:

{
  "items": [
    {
      "id": 1,
      "first_name": "Mario",
      "last_name": "Rossi",
      "email": "mario@example.com"
    }
  ],
  "count": 1250
}

Calcolare il numero di pagine

const totalPages = Math.ceil(response.count / limit);

Recuperare tutti gli elementi

async function fetchAll(endpoint, token) {
  const limit = 100;
  let offset = 0;
  const results = [];

  while (true) {
    const res = await fetch(
      `https://core.riseact.org/api/v1/${endpoint}/?limit=${limit}&offset=${offset}`,
      { headers: { Authorization: `Bearer ${token}` } }
    );
    const { items, count } = await res.json();

    results.push(...items);
    offset += limit;

    if (offset >= count) break;
  }

  return results;
}

Ordinamento

Il parametro order indica il campo di ordinamento; il prefisso - lo rende discendente. Il default è -create_date, dal più recente.

# Donazioni ordinate per data crescente
GET /api/v1/donations/?order=create_date

# Donazioni ordinate per data decrescente (default)
GET /api/v1/donations/?order=-create_date

Endpoint che supportano la paginazione

EndpointMetodo
/api/v1/supporters/GET
/api/v1/donations/GET
/api/v1/payments/GET
/api/v1/campaigns/GET
/api/v1/checkouts/GET

Fonte: https://dev.riseact.org/docs/apis/rest-pagination. Copia automatica da dev.riseact.org: non modificare qui, le modifiche vanno fatte sulla documentazione Docusaurus.