Paginierung
Wie Listen mit page und limit in Seiten aufgeteilt werden, der Block pagination in der Antwort, wie du alles durchläufst und wie Filter und Paginierung zusammenspielen.
Große Listen (Mitglieder, Kontoauszug, Feed, Produkte) kommen seitenweise. Du forderst die Seite mit zwei Parametern an und bekommst zusammen mit den Elementen den Block pagination.
Die Parameter
| Parameter | Was es ist | Standard | Maximum |
|---|---|---|---|
page | Die Seite, beginnend bei 1 | 1 | — |
limit | Elemente pro Seite | 20 | 100 |
curl -s "https://api.memberfy.net/api/profiles/list?page=2&limit=50" \
-H "Authorization: Bearer $TOKEN" \
-H "X-CommunityId: $COMMUNITY_ID"
Die Antwort
{
"success": true,
"message": "…",
"data": [ { "…": "…" } ],
"pagination": { "page": 2, "limit": 50, "total": 137, "totalPages": 3 }
}
| Feld | Was es ist |
|---|---|
page | Die zurückgegebene Seite |
limit | Elemente pro Seite |
total | Wie viele Elemente es gibt, bereits gefiltert |
totalPages | Wie viele Seiten es gibt |
Alles durchlaufen
let page = 1;
const all = [];
while (true) {
const { data, pagination } = await api.profiles.getList({ page, limit: 100 });
all.push(...data);
if (page >= pagination.totalPages) break;
page += 1;
}
Filter und Paginierung
Die Filter (search, role, type, status …) werden vor der Paginierung angewendet: total und totalPages zählen nur, was zum Filter passt.
Tipps
- Nimm das größte sinnvolle
limit(bis 100), um weniger Aufrufe zu machen. - Geh nicht davon aus, dass alle Listen paginiert sind: Ist eine es nicht, fehlt der Block
pagination, unddataenthält alles. - Wenn du eine Liste durchläufst, die sich beim Lesen ändert (zum Beispiel den Feed), kann ein Element auf zwei Seiten auftauchen; entferne Duplikate anhand der
id.