La anotación @Valid puede realizar la verificación de datos. Puede definir entidades y agregar reglas de verificación a las propiedades de la entidad. Cuando la API recibe datos, su entidad habilitará una función de verificación. El código específico es el siguiente, que es la aplicación más básica:
entidad:
Public Class DepartmentDTO {@apimodelproperty ("id") ID de cadena privada; @Apimodelproperty ("ID superior") Cadena privada ParentId; @Apimodelproperty ("número") @notblank (mensaje = "El número de departamento no puede estar vacío") Código de cadena privada; @Apimodelproperty ("número") @notblank (mensaje = "El nombre del departamento no puede estar vacío") Nombre de cadena privada; @Apimodelproperty ("empleado> empleados = new ArrayList <> ();}Interfaz Restful:
@PostMapping () Respuesta pública <Man ClientAccount> InitialAcCount (@APIPARAM ("Número de cliente") @PathVariable Code de cadena, @Apiparam ("Período de registro") @PathVariable Yearmonth Accountperiod, @Apiparam ("Solicitar cuerpo") @Valid @RequestBody Solicitar <Scorriente de departamento> Solicitar) {ClientAccount Result = ClientCountService Accountperiod, request.getOperator (), request.getBody ()); {} En el código anterior, agregamos un cheque para la solicitud de la Request<DepartmentDto> . Durante la prueba, si su nombre de departamento está vacío, cuando aparece una excepción de 400, el mensaje de excepción de Lishi es "el nombre del departamento no puede estar vacío", lo cual no es un problema para nosotros y también cumple con nuestros requisitos. Veamos otro escenario a continuación.
La entidad que debe verificarse es otra propiedad inmobiliaria
También necesitamos ver que un objeto grande, como otros objetos pequeños encapsulados, se compone de, por ejemplo, empleados bajo el departamento. Si necesita verificar la efectividad de los empleados, ¿cómo debe lograrlo? Si no modificamos el código fuente y el resultado de la ejecución es negativo, no verificará el objeto del empleado, pero solo se dirigirá a las propiedades del objeto de primera capa.
Podemos verificar este atributo agregando @Valid a @Valid
Public Class DepartmentDTO {@apimodelproperty ("id") ID de cadena privada; @Apimodelproperty ("ID superior") Cadena privada ParentId; @Apimodelproperty ("número") @notblank (mensaje = "El número de departamento no puede estar vacío") Código de cadena privada; @Apimodelproperty ("número") @notblank (mensaje = "El nombre del departamento no puede estar vacío") Nombre de cadena privada; @Valid @apimodelproperty ("Empleado> Empleados = New ArrayList <> ();}Echemos un vistazo a los resultados de verificación a continuación. ¡Nuestros 400 errores se pueden emitir normalmente debajo de la prueba unitaria!
@Test public void InitialAccount_employee_name_empty () {List <Eltage> Employes = New ArrayList <> (); Empleados.add (Employee.Builder () .name ("") .Email ("[email protected]") .idnumber ("110111198203182012") .Build ()); Lista <Scart de departamento> departamentos = new ArrayList <> (); departamentos.add (departamdto.builder () .name ("departamento") .Description ("Departamento técnico") .SalaryType (salaryType.researchandDevelovelopmentCosts). Employes (empleados) .Build ()); ClientACcountdto ClientAccountdto = ClientAccountdto.Builder () .name ("Cliente") .departments (departamentos) .Build (); Request <ClientAccountdto> request = buildRequest (ClientAccountdto); api.post () .uri ("/v1/12345/2018-03") .Body (BodyInserters.FromObject (request) .Exchange () .expectstatus (). ISequalTo (400) .ExpectBody () .JSONPATH ("$. }Los resultados son los siguientes, la prueba pasa
Si se prueba, es ISOK, ya que el nombre de usuario está vacío, aparecerá un mensaje de error
api.post () .uri ("/v1/12345/2018-03") .Body (BodyInserters.FromObject (request) .Exchange () .expectstatus (). ISOK ();Puede verificar la información de inmediato de los resultados
Resumir
Lo anterior es la verificación del tipo anidado por la anotación springboot @valid introducida a usted. Espero que te sea útil. Si tiene alguna pregunta, déjame un mensaje y el editor le responderá a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!