Soft-Löschung

Ein Soft-Delete markiert einen Datensatz mit dem Status „gelöscht“ (deleted_at, status: deleted), anstatt ihn endgültig zu entfernen. Die Daten bleiben für Auditing-, Rückgängigmachungs- und Referenzintegritätszwecke erhalten, während die API sie als gelöscht behandelt. Dadurch kann die API für eine gelöschte Ressource den Statuscode 410 Gone zurückgeben, was aussagekräftiger ist als 404 Not Found: Es besagt, dass die Kennung gültig war und die Ressource absichtlich nicht mehr verfügbar ist.

So funktioniert es

Jeder Lesevorgang muss markierte Zeilen ausschließen, einschließlich Listen-Endpunkten, Suchvorgängen und Zählungen. Ein GET-Aufruf auf eine vorläufig gelöschte ID liefert den Statuscode 410, ein zweiter DELETE-Aufruf liefert 410 oder 404 statt 204, und ein Bereinigungsvorgang entfernt die Daten schließlich endgültig, oft nach einer Aufbewahrungsfrist, die durch Datenschutzgesetze vorgeschrieben sein kann.

Das Missverständnis

Die vorläufig gelöschten Daten sind zwar unwiederbringlich verloren, befinden sich aber weiterhin in der Datenbank, in Backups und oft auch in Suchindizes. Bei personenbezogenen Daten reicht eine vorläufige Löschung allein nicht aus, um eine endgültige Löschung zu gewährleisten. Und ein Listenendpunkt, der den Filter vergisst, stellt gelöschte Datensätze für jeden Client wieder her.

Probieren Sie es hier aus

Löschen Sie /protocol/v1/documents/{id} als Administrator und rufen Sie anschließend dieselbe ID per GET-Anfrage ab: Die Antwort lautet 410, nicht 404. Die abgelaufenen Gutscheine der Shop-API sowie die stornierten Tickets der Weltmeisterschaft und der FIBA liefern auf dieselbe Weise den Fehlercode 410.

Quellen

Weitere Begriffe

Diese Seite auf Englisch lesen

Alle Glossarbegriffe · Testtechniken · Alle 39 Mock-REST-APIs

Zuletzt aktualisiert