Validieren von Telefonnummern

Im letzten Beitrag wurde für die Klasse InternationalTelephoneNumber aus dem Projekt Telephone ein Serialisierer und ein Deserialisierer für Jackson erstellt. Damit ist es möglich diese Klasse direkt in REST Request einzusetzen. Zusätzlich wäre eine Validierung der Telefonnummern wünschenswert. Auf diese Weise könnten Telefonnummern mit speziellen Vorwahlen oder Durchwahlen abgelehnt werden.

JSR 354 – Ihre Nummer fürs Geld

Java Bibliotheken

Nicht jeder JSR schafft es direkt ins JDK und dann vergisst man schon einmal, das seit 2015 eine Referenzimplementierung für Java Money existiert. Wer mit Geldbeträgen und Währungen nicht mehr direkt auf BigDecimal arbeiten möchte, sollte sich deshalb unbedingt Moneta anschauen.

Datumsvalidierung mit Zeitfenstern

Der Bean Validation 2.0 (JSR380) Framework nimmt dem Java Entwickler viel Arbeit ab. Die Prüfung auf valide Daten reduziert sich mittlerweile auf einige Annotationen an den zu prüfenden Konstrukten. Auch im Bereich der Datumsprüfungen gibt es reichlich Unterstützung. Aber manchmal kann es ein wenig mehr sein.

Validieren mit zwei Unbekannten

Mit Spring Boot können eigene REST Services schnell erstellt werden. Die dabei notwendige Validierung der Parameter ist mit dem Bean Validation Framework (JSR 380) auch in Windeseile hinzugefügt. Manchmal ist es aber notwendig verschiedene Parameter gegeneinander zu prüfen, dann reichen die Standardwerkzeuge nicht mehr aus und eigene Validatoren müssen erstellt werden. Anhand eines kleines Beispiel zeigt dieser Beitrag, wie einfach das geht.

Spring Boot Validation Cheat Sheet

Wer sich jedes Mal fragt, wie die ganzen Validierungsannotationen heißen und bei welchen Java Typen sie verwendet werden dürfen, kann jetzt aufatmen. Hier kann man einen Spickzettel herunterladen.

Autokonfiguration in Spring Boot

Eines der interessantesten Features von Spring Boot bemerkt man immer erst dann, wenn es mal nicht da ist. Im Beitrag Frontend Validierung mit Spring Boot (Teil 2) habe ich ein kleinen Framework vorgestellt, das man in eigene Applikationen einbinden kann. Mein Erstaunen war groß, als es gleich beim ersten Mal nicht funktionierte.

Validieren wie Nick Knatterton- kombinieren, kombinieren

Das Validieren in Java hat viele interessante aber selten benutze Möglichkeiten. In diesem Beitrag geht es um das Kombinieren der Validierungs-Annotationen. Ein zu prüfenden Datum mit verschiedenen Validierungen zu annotieren ist sicherlich bekannt.
In diesem Beitrag wollen wir uns aber eine weniger bekannte Variante anschauen.

Front End Validierung mit Spring Boot

Leider zeigt sich hier ein kleines Manko dieses Ansatzes. Die Entitäten für Spring Data müssen annotiert werden, die DTO müssen annotiert werden und das Javascript Framework muss auch die Wertebereiche der Eingabe kennen. Drei verschiedene Konfigurationen konsistent zu halten ist arbeitsintensiv und fehleranfällig.

Magisches Validieren in Spring Boot

Spricht man mit manchen Kollegen über den Spring Boot Framework, dann erscheint ihnen vieles daran suspekt. Aus einigen wenigen Klassen werden durch ein Dutzend Annotationen an der richtigen Stelle vollwertige REST Schnittstellen.

Vermutlich erinnern die Annotationen an verfluchte Hexenzeichen, die dem markierten Objekt magische Eigenschaften verleihen. Annotationen sind aber nur Konfigurationshinweise für den Framework, damit der eigentliche Anwendungscode nicht zwischen den, ansonsten notwendigen Boilerplate Code, verloren geht.