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:
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);
}
}import os
import requests
def list_all_invoices(workspace_id):
url = os.environ["SWAY_API"] + "/workspaces/" + workspace_id + "/invoices"
headers = {"Authorization": "Bearer " + os.environ["SWAY_API_KEY"]}
params = {"limit": 100}
invoices = []
while True:
response = requests.get(url, headers=headers, params=params)
response.raise_for_status()
page = response.json()
invoices.extend(page["data"])
if "nextCursor" not in page:
return invoices
params["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ültigeslimitfä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.
pagezählt ab 0, undsizenimmt 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 alssizeElementen zurückkommt.
Arbeitsbereiche
GET /workspaces liefert jeden Arbeitsbereich des Benutzers des Schlüssels in einer Antwort, ohne Seiten und ohne limit.