Zum Hauptinhalt springen

send()

Beschreibung

Diese Methode übernimmt das Senden der erforderlichen HTTP-Anfragen an den Server und liefert ein Promise zurück, das je nach Anfragetyp Daten enthalten kann.

Alle Serveranfragen werden über die send() Methode ausgeführt, die Teil des RestDataProvider Services ist.

Verwendung

send(
url: string,
method: "GET" | "POST" | "PUT" | "DELETE" | string,
data?: object,
headers?: object,
): promise;

Parameter

NameTypBeschreibung
urlstringErforderlich. Der Server-Endpunkt, an den die Anfrage gesendet wird.
methodstringErforderlich. Die zu verwendende HTTP-Methode (GET, POST, PUT, DELETE).
dataobjectOptional. Parameter, die an den Server gesendet werden. Standardmäßig werden Event-Parameter gesendet, Sie können jedoch zusätzliche Parameter mit einem benutzerdefinierten Objekt hinzufügen. Siehe das Beispiel unten.
headersobjectOptional. Der Standard-Header enthält Content-Type mit dem Wert application/json. Zusätzliche Header können über den Parameter customHeaders hinzugefügt werden. Siehe das Beispiel unten.

Antwort

Diese Methode gibt ein Promise zurück, das je nach Anfrage Daten enthalten kann oder nicht.

Ein Promise wird bei erfolgreicher Anfrage aufgelöst. Wenn die Anfrage fehlschlägt, wird ein Fehler ausgelöst.

Sie können die zurückgegebenen Daten steuern und Fehler bei fehlgeschlagenen Anfragen mit der catch Methode des zurückgegebenen Promise behandeln.

restDataProvider.send(url, method, data)
.then(data => {
... // Erfolg: Verarbeite die erhaltenen Daten
})
.catch(err => {
... // Fehlerbehandlung
});

Beispiele

Das folgende Beispiel zeigt, wie eine Anfrage mit zusätzlichen Parametern neben den Standardparametern gesendet wird:

const url = "https://some_backend_url";
const restProvider = new kanban.RestDataProvider(url);

Promise.all([
restProvider.getCards(),
restProvider.getColumns()
]).then(([cards, columns]) => {
const board = new kanban.Kanban("#root", {
cards,
columns,
//Konfigurationsparameter
});

board.api.on("add-card", obj => {
obj.custom = "custom prop";
restProvider.send(`cards`, "POST", obj).then(data => {
board.api.parse({ cards: data });
return Promise.resolve();
});
});

board.api.setNext(restProvider);
});

Die folgenden Beispiele zeigen, wie zusätzliche Header beim Verwenden der send() Methode hinzugefügt werden können.

const customHeaders = {
"Authorization": "Bearer",
"Custom header": "some value",
};

board.api.on("add-cards", obj => {
restDataProvider.send("cards", "POST", obj, customHeaders);
});

Alternativ können Header auch hinzugefügt werden, indem RestDataProvider erweitert wird, was eine bessere Kontrolle über die an den Server gesendeten Daten ermöglicht:

const url = "https://some_backend_url";

class MyDataProvider extends RestDataProvider {
send(url, method, data, headers) {
headers = { ...headers, "SomeToken": "abc" };
return super.send(url, methods, data, headers);
}
}

board.api.setNext(new MyDataProvider(url));

Verwandte Artikel: Arbeiten mit dem Server