Meine Anwendung akzeptiert http DELETE-Anfragen, die Einträge aus einer Datenbank durch Hibernate entfernt entfernen.Was ist der korrekte HTTP-Statuscode, der zurückgegeben werden soll, wenn DELETE nicht ausgeführt werden kann?
Das Entfernen bestimmter Einträge würde eine hibernate.ConstraintViolationException verursachen, da sie in einer anderen Tabelle Schlüssel sind, daher werden sie nicht akzeptiert. Dieser Fehler kann sich jedoch je nach Zustand des DBs zeitlich ändern.
Wie lautet die HTTP-Antwort für ein solches Szenario?
Ich dachte an 412 (Vorbedingung fehlgeschlagen), weil die Vorbedingung des Eintrags, der nicht vom System verwendet wird, nicht erfüllt ist.
Vielleicht möchten Sie [die Definition des 412-Codes] erneut lesen (https://tools.ietf.org/html/rfc7232#section-4.2). Dieser Statuscode ist für Ihr Problem nicht geeignet. – DaSourcerer
@DaSourcerer, habe ich es als PRECONDITION interpretiert: = "der Eintrag wird nicht in anderen Tabellen verwendet". Ich schätze, es gibt einen geeigneteren Status für die Rückkehr und deshalb habe ich die Frage gestellt. Was wäre ein angemessener Status in einem solchen Szenario? –
Nein, die Vorbedingung ist eine Referenz auf den Header 'If- * '. Um genau zu sein: Es ist die Voraussetzung für eine bedingte Anfrage des Kunden, die fehlgeschlagen ist. – DaSourcerer