Standardmäßig stellt der Adapter von ember-data fest, dass eine Antwort ungültig ist, wenn der Statuscode 422 lautet. Sie können die isInvalid
-Funktion des Adapters überschreiben, um dies zu ändern.
Außerdem erwartet ember-data nun, dass Fehler in ein json-api-Fehlerobjekt formatiert werden. Wenn Ihr Back-End es nicht in diesem Format zurückgibt, können Sie es in ember transformieren, indem Sie die handleResponse
-Funktion des Adapters überschreiben.
Dies ist ein Beispiel json-api Fehler:
{"errors": [
{
"detail": "Must be unique",
"source": { pointer: "/data/attributes/title"}
},
{
"detail": "Must not be blank",
"source": { pointer: "/data/attributes/content"}
}
]}
Wenn Sie Fehlerreaktionen sind Rückkehr Sie oben beschrieben, würden Sie so etwas wie dies in Ihrem Adapter zu tun haben:
handleResponse(status, headers, payload) {
if (status === 422 && payload.errors) {
let jsonApiErrors = [];
for (let key in payload.errors) {
for (let i = 0; i < payload.errors[key].length; i++) {
jsonApiErrors.push({
detail: payload.errors[key][i],
source: {
pointer: `data/attributes/${key}`
}
});
}
}
return new DS.InvalidError(jsonApiErrors);
} else {
return this._super(...arguments);
}
}
Was sind die Header der Anfrage von der Entwicklerkonsole, wenn Sie das Objekt speichern? – DanGar
Bevor ich 200 hatte, aber jetzt auf 400 ändere, ist das Ergebnis dasselbe. –
Die Fehlerbehandlung hängt von Ihrem Glutendatenadapter ab. Welchen Adapter benutzen Sie? – Engwan