Ich schreibe eine JAX-RS-API und verwende die Response-Klasse als Rückgabetyp für jede Methode. Ich versuche jedoch, den "besten" Ansatz zur Validierung der Parameter herauszufinden.Validieren von Eingabeparametern für JAX-RS-Methoden
Ich habe bereits einige REST-APIs geschrieben und normalerweise benutzerdefinierte Validierungsroutinen in der Methode und dann über ein benutzerdefiniertes Rückgabeobjekt mit Validierungsnachrichten verfügen. Ich denke ich möchte das gleiche hier machen, aber ist das "bevorzugt"?
Ich weiß, es gibt Annotationen wie @NotNull
, etc., die Sie anwenden können und benutzerdefinierte Validierung Nachrichten bereitstellen, aber ich mag nicht wirklich die Art, die endet suchen.
Also, was ich getan habe, ist, dass ich eine Return-Objekt-Bean schrieb, die ich als die .entity() für meine JAX-RS-Antwort verwende, und ich alle meine Validierungsnachrichten dort hineinlege. Ich verwende das gleiche Rückgabeobjekt für Erfolge und Fehler, aber es ist nur eine Frage, welche Parameter ich je nach Szenario dort aufstelle. Dies ist eine interne API, sodass keine externen Konsumenten vorhanden sind. Ich wollte nur den Rückgabetyp standardisieren, so dass immer das gleiche "Objekt" zurückgegeben wird.
Klingt das wie ein guter Ansatz? Ich bin ein wenig eingerostet in den Best Practices für REST API und habe wie verrückt gegoogelt, bin aber noch nicht zu den Best Practices gekommen.
Was ist das Problem mit Bean Validierung und Anmerkungen wie '@ NotNull'? –
Nun, ich möchte wirklich ein konsistentes Objekt von den API-Aufrufe zurückgegeben werden, unabhängig von Erfolg oder Misserfolg. Wenn ich die Annotationen verwende, passiert das nicht, da ich mein Rückgabeobjekt nicht konstruieren kann. – cloudwalker