Ich benutze Spring Data Rest und alles läuft gut.Spring Daten Rest Validierung + Ausnahme Mapper: verwirrend
Ich möchte Validierung (JSR 303) auf meine Entitäten anwenden.
Die Feder Dokumentation sagen, dass ich Anwendungsereignisse auf ein paar Arten abfangen kann (von denen ich nicht zur Arbeit kommen kann, und im Moment scheint spring.io ausgefallen zu sein).
Allerdings habe ich es Arbeit erhalten, indem
@Validated
auf meinem respository setzen:
@Validated
@RepositoryRestResource(collectionResourceRel = "workers", path = "workers")
public interface WorkerRepository extends PagingAndSortingRepository<Worker, Long> {
}
Und es wird eine Ausnahme werfen. Das Problem ist, es ist eine Feder Ausnahme und nicht einmal die Wurzel ein, und ich muss grundsätzlich die Validierungen nehmen und sie in eine benutzerdefinierte Entität Nutzlast:
{
"foo": "must be of length 10",
"baz": "Must match pattern '[A-Z]+'"
}
So, kurz gesagt, ich will
- Validate ein Unternehmen JSR mit 303
- eine HTTP-Einheit Produce mit 400: und einer Zuordnung oder Feld -> Fehler
Was ist der einfachste Weg, dies zu tun? stolperte ich auch dazu:
Detected @ExceptionHandler methods in repositoryRestExceptionHandler
Welche verdächtig nützlich scheint. Wenn ich diese Klasse auschecke sieht es so aus, als ob ich sicher brauche
Das sieht aus wie es funktionieren könnte und es ist, was ich brauche. Aber ich muss abfangen, was mit diesen Validierungsfehlern passiert. –
@ChristianBongiorno - danke für den Hinweis - Ich habe meinem Beitrag noch ein paar Details hinzugefügt - die Konfiguration ist alles, was Sie brauchen - der Rest ist bereits im Frühjahr-Daten-Rest gesorgt –
@MathiasDpunkt große Antwort, sondern in der Tat, wie Würden Sie ein ähnliches Verhalten für benutzerdefinierte Steuerungen für Federdaten-Ruhe erzielen? – m4rtin