Zum Inhalt springen

Paginierung

Lesen Sie eine ganze Liste Seite für Seite mit ihrem Cursor, holen Sie Elemente über ihre IDs, behalten Sie nur die nötigen Felder, und blättern Sie durch Suchergebnisse.

Die Listen eines Arbeitsbereichs, etwa seine Rechnungen oder seine Banktransaktionen, liefern eine Seite nach der anderen. Eine Seite enthält bis zu limit Elemente: standardmässig 20, höchstens 100.

Alle Seiten lesen

Eine Liste antwortet mit ihren Elementen in data, dem limit der Anfrage und einem nextCursor, wenn die Seite voll ist. Senden Sie diesen Cursor als startAfter zurück, um die nächste Seite zu erhalten, und hören Sie bei einer Seite ohne nextCursor auf:

GET /workspaces/{workspaceId}/invoices
async function listAllInvoices(workspaceId) {
const url = new URL(process.env.SWAY_API + '/workspaces/' + workspaceId + '/invoices');
const headers = {Authorization: 'Bearer ' + process.env.SWAY_API_KEY};
url.searchParams.set('limit', '100');
const invoices = [];
while (true) {
  const response = await fetch(url, {headers});
  if (!response.ok) throw new Error('Sway API answered ' + response.status);
  const page = await response.json();
  invoices.push(...page.data);
  if (!page.nextCursor) return invoices;
  url.searchParams.set('startAfter', page.nextCursor);
}
}
  • Eine volle letzte Seite trägt noch einen nextCursor, und die Seite, auf die er zeigt, ist leer: Die Schleife endet eine Anfrage später.
  • Der Cursor ist opak: Senden Sie ihn unverändert zurück. Er enthält den Sortierwert und die ID des letzten Elements, sodass Elemente mit gleichem Wert in einer stabilen Reihenfolge zurückkommen.
  • Ein fehlerhafter Cursor erhält 400 invalid-argument. Ein fehlendes oder ungültiges limit fällt auf 20 zurück, ein grösseres auf 100.

Elemente über ihre IDs holen

?ids= nimmt bis zu 30 kommagetrennte IDs und liefert diese Elemente in einem Aufruf, etwa ?ids=Hk2xNq8vR4tYw6ZbPj3c,Rm5tB8wQ2zLx7nVc4pKs. Es ignoriert limit, startAfter und die Filter.

Nur einige Felder behalten

?fields= behält nur die Eigenschaften, die es nennt, in der Antwort oder in jedem Element einer Liste; ein Punkt erreicht eine verschachtelte Eigenschaft. ?fields=firestoreId,invoiceStatus,totalAmount.amount liefert drei Eigenschaften jeder Rechnung. Jeder Endpunkt nimmt es an.

Suchergebnisse

Die fünf Such-Endpunkte blättern stattdessen nach Nummer: Banktransaktionen, Drittparteien, Rechnungen, Zahlungsentwürfe und Dateien des Arbeitsbereichs.

  • page zählt ab 0, und size nimmt 1 bis 100 Elemente, standardmässig 20.
  • Die Antwort enthält nur data, ohne Cursor und ohne Gesamtzahl: Fragen Sie die nächste Seite an, bis eine mit weniger als size Elementen zurückkommt.

Arbeitsbereiche

GET /workspaces liefert jeden Arbeitsbereich des Benutzers des Schlüssels in einer Antwort, ohne Seiten und ohne limit.

Bauen Sie auf Ihren eigenen Daten.

Erstellen Sie ein Konto, öffnen Sie Profil › Entwickler und erstellen Sie einen Schlüssel, der auf die nötigen Ressourcen begrenzt ist. Fragen zu einer Integration? Das Team beantwortet sie in einem Gespräch.