Die @Valid -Annotation kann die Datenüberprüfung realisieren. Sie können Entitäten definieren und den Eigenschaften des Unternehmens Überprüfungsregeln hinzufügen. Wenn die API Daten empfängt, aktiviert Ihr Entität eine Überprüfungsfunktion. Der spezifische Code ist wie folgt, was die grundlegendste Anwendung ist:
juristische Person:
public class DepartmentDTO {@apimodelProperty ("ID") private String -ID; @ApimodelProperty ("überlegene ID") private String -ParentID; @ApimodelProperty ("Nummer") @notblank (Message = "Abteilungsnummer kann nicht leer sein.") Privater String -Code; @ApimodelProperty ("Nummer") @notblank (Message = "Abteilungsname kann nicht leer sein.") Private String -Name; @ApimodelProperty ("Mitarbeiter> Mitarbeiter = New ArrayList <> ();}RESTFAY -Schnittstelle:
@PostMapping() public Response<ClientAccount> initialAccount( @ApiParam("Customer Number") @PathVariable String code, @ApiParam("Registration Period") @PathVariable YearMonth accountPeriod, @ApiParam("Request Body") @Valid @RequestBody Request<DepartmentDto> request) { ClientAccount result = clientAccountService.initialAccount(code, accountPeriod, request.getoperator (), request.getBody ()); {} Im obigen Code haben wir einen Scheck für die Request<DepartmentDto> hinzugefügt. Während des Tests ist die Lishi -Ausnahmenachricht, wenn Ihr Abteilung name.name leer ist, wenn eine Ausnahme von 400 erscheint, "der Abteilungsname kann nicht leer sein", was für uns kein Problem ist und auch unseren Anforderungen entspricht. Lassen Sie uns unten ein weiteres Szenario sehen.
Das Unternehmen, das überprüft werden muss, ist eine weitere Immobilie
Wir müssen auch feststellen, dass ein großes Objekt, wie andere kleine Objekte, die eingezogen werden, beispielsweise aus Mitarbeitern der Abteilung besteht. Wenn Sie die Effektivität der Mitarbeiter überprüfen müssen, wie sollten Sie dies erreichen? Wenn wir den Quellcode nicht ändern und das Ausführungsergebnis negativ ist, werden das Mitarbeiterobjekt nicht überprüft, sondern nur auf die Eigenschaften des ersten Layer -Objekts abzielt.
Wir können dieses Attribut überprüfen, indem wir @Valid @Valid hinzufügen
public class DepartmentDTO {@apimodelProperty ("ID") private String -ID; @ApimodelProperty ("überlegene ID") private String -ParentID; @ApimodelProperty ("Nummer") @notblank (Message = "Abteilungsnummer kann nicht leer sein.") Privater String -Code; @ApimodelProperty ("Nummer") @notblank (Message = "Abteilungsname kann nicht leer sein.") Private String -Name; @Valid @APImodelProperty ("Mitarbeiter> Mitarbeiter = New ArrayList <> ();}Schauen wir uns die folgenden Überprüfergebnisse an. Unsere 400 Fehler können normalerweise unter dem Unit -Test ausgegeben werden!
@Test public void initialAccount_EMPOTEE_NAME_EMPTY () {list <We Employee> Employee = New ArrayList <> (); Employee.add (Employee.builder () .Name ("") .Email ("[email protected]") .Idnumber ("110111198203182012") .build ()); Liste <ABTEILEDTO> Abteilungen = new ArrayList <> (); Abteilungen.Add (Abteilungdto.builder () .Name ("Abteilung") .Deskription ("technische Abteilung") .SalaryType (GehaltType.ResearchandDevelopmentCosts) .Anbirhees (Mitarbeiter) .build ()); ClientAccountDTO ClientAccountDTO = ClientAccountDTO.Builder () .Name ("Customer") .Departments (Abteilungen) .build (); Anfrage <ClientAccountDTO> request = BuildRequest (ClientAccountDTO); api.post () .uri ("/v1/12345/2018-03") .body (bodyInerters.fromObject (Anfrage)) .exchange () .ausdruckstatus (). isequalto (400). }Die Ergebnisse lauten wie folgt, der Test besteht
Wenn es getestet wird, ist es ISOK, da der Benutzername leer ist, wird eine Fehlermeldung angezeigt
api.post () .uri ("/v1/12345/2018-03") .body (bodyInerters.fromObject (request)) .exchange () .expectStatus (). isok ();Sie können die Ergebnisse der Ergebnisse einschalten, um Informationen zu erhalten
Zusammenfassen
Die oben genannte Überprüfung des verschachtelten Typs durch den Springboot @Valid -Annotation, der Ihnen vorgestellt wurde. Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird Ihnen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!