Paginierung
Listen-Endpoints in der neuroflash API unterstützen Paginierung mit den Query-Parametern page und size.
Anfrageparameter
| Parameter | Typ | Standard | Beschreibung |
|---|---|---|---|
page | integer | 1 | Seitennummer (1-basiert) |
size | integer | 20 | Anzahl der Einträge pro Seite (Maximum variiert je Endpoint, typischerweise 200) |
sort | string | variiert | Feld, nach dem sortiert wird (z.B. name, createdAt, updatedAt) |
order | string | variiert | Sortierrichtung: asc oder desc |
Antwortformat
Paginierte Antworten enthalten ein page-Objekt mit Metadaten:
{
"data": [
{ "id": "abc-123", "name": "Example item" },
{ "id": "def-456", "name": "Another item" }
],
"page": {
"size": 20,
"totalElements": 42,
"totalPages": 3,
"currentPage": 1
}
}
| Feld | Beschreibung |
|---|---|
data | Array der Ressourcen für die aktuelle Seite |
page.size | Anzahl der Einträge pro Seite |
page.totalElements | Gesamtanzahl der Einträge über alle Seiten |
page.totalPages | Gesamtanzahl der Seiten |
page.currentPage | Aktuelle Seitennummer (1-basiert) |
Beispiel: Durch Ergebnisse paginieren
- cURL
- Python
- Node.js
- Go
# Get the first page (20 items)
curl "https://app.neuroflash.com/api/digital-twin-service/v1/workspaces/{workspace_id}/static-groups/millennials/twins?page=1&size=20" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
# Get the second page
curl "https://app.neuroflash.com/api/digital-twin-service/v1/workspaces/{workspace_id}/static-groups/millennials/twins?page=2&size=20" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
import requests
BASE_URL = "https://app.neuroflash.com/api"
headers = {"Authorization": f"Bearer {token}"}
def get_all_twins(workspace_id, group_key):
"""Fetch all twins across all pages."""
all_twins = []
page = 1
while True:
response = requests.get(
f"{BASE_URL}/digital-twin-service/v1/workspaces/{workspace_id}/static-groups/{group_key}/twins",
headers=headers,
params={"page": page, "size": 50},
)
data = response.json()
all_twins.extend(data["data"])
if page >= data["page"]["totalPages"]:
break
page += 1
return all_twins
twins = get_all_twins("your-workspace-id", "millennials")
print(f"Total twins: {len(twins)}")
const BASE_URL = "https://app.neuroflash.com/api";
async function getAllTwins(workspaceId, groupKey) {
const allTwins = [];
let page = 1;
while (true) {
const response = await fetch(
`${BASE_URL}/digital-twin-service/v1/workspaces/${workspaceId}/static-groups/${groupKey}/twins?page=${page}&size=50`,
{ headers: { Authorization: `Bearer ${token}` } }
);
const data = await response.json();
allTwins.push(...data.data);
if (page >= data.page.totalPages) break;
page++;
}
return allTwins;
}
const baseURL = "https://app.neuroflash.com/api"
func getAllTwins(token, workspaceID, groupKey string) ([]json.RawMessage, error) {
var allTwins []json.RawMessage
page := 1
for {
url := fmt.Sprintf("%s/digital-twin-service/v1/workspaces/%s/static-groups/%s/twins?page=%d&size=50",
baseURL, workspaceID, groupKey, page)
req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("Authorization", "Bearer "+token)
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
var result struct {
Data []json.RawMessage `json:"data"`
Page struct {
TotalPages int `json:"totalPages"`
} `json:"page"`
}
json.NewDecoder(resp.Body).Decode(&result)
allTwins = append(allTwins, result.Data...)
if page >= result.Page.TotalPages {
break
}
page++
}
return allTwins, nil
}
Filtern und Sortieren
Viele Listen-Endpoints unterstützen zusätzliche Query-Parameter zum Filtern und Sortieren. Prüfen Sie die Dokumentation jedes Endpoints für verfügbare Optionen.
# List twins sorted by name descending, 10 per page
curl "https://app.neuroflash.com/api/digital-twin-service/v1/workspaces/{workspace_id}/static-groups/gen_z/twins?page=1&size=10&order=desc" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"