Аннотация @Valid может реализовать проверку данных. Вы можете определить сущности и добавить правила проверки в свойства сущности. Когда API получает данные, ваша организация обеспечит функцию проверки. Конкретный код заключается в следующем, которое является самым основным приложением:
сущность:
открытый класс Departmentdto {@apimodelproperty ("id") частная строка идентификатор строки; @Apimodelproperty ("Superior Id") private String parentid; @Apimodelproperty ("number") @notblank (message = "номер отдела не может быть пустым.") Приватный строковый код; @Apimodelproperty ("number") @notblank (message = "Имя отдела не может быть пустым.") Приватное строковое имя; @Apimodelproperty ("Сотрудник> сотрудники = new Arraylist <> ();}RESTful Interface:
@Postmapping () public response <clientAccount> initistaccount (@apiparam ("номер клиента") @pathvariable строкового кода, @apiparam ("Регистрационный период") @pathvariable yearmonth accountperiod, @apiparam ("Запрос на корпус") @valid @requestbody request <pessiredto> resect) {clientaccount resturonv = chultycount resturov @Valid @Requestbody -reception, @Apiparam ("запрос") @Valid @RequestBody -запрос. AccountPeriod, request.getOperator (), request.getbody ()); {} В приведенном выше коде мы добавили чек на запрос на тело Request<DepartmentDto> . Во время теста, если ваше отделение DepartmentNTO.NAME пустое, когда появляется исключение из 400, сообщение об исключении LISHI «Имя отделения не может быть пустым», что не является для нас проблемой, и оно также отвечает нашим требованиям. Давайте посмотрим еще один сценарий ниже.
Сущность, которая должна быть проверена, является еще одной недвижимостью
Мы также должны видеть, что большой объект, такой как другие небольшие объекты, состоит из, например, сотрудников по департаменту. Если вам нужно проверить эффективность сотрудников, как вы должны ее достичь? Если мы не изменим исходный код, а результат выполнения отрицателен, он не будет проверять объект сотрудника, но будет нацелен только на свойства первого объекта уровня.
Мы можем проверить этот атрибут, добавив @Valid в @Valid
открытый класс Departmentdto {@apimodelproperty ("id") частная строка идентификатор строки; @Apimodelproperty ("Superior Id") private String parentid; @Apimodelproperty ("number") @notblank (message = "номер отдела не может быть пустым.") Приватный строковый код; @Apimodelproperty ("number") @notblank (message = "Имя отдела не может быть пустым.") Приватное строковое имя; @Valid @apimodelproperty ("Сотрудник> сотрудники = new Arraylist <> ();}Давайте посмотрим на результаты проверки ниже. Наши 400 ошибок могут быть выводится обычно под модульным тестом!
@Test public void initisticAccount_employee_name_empty () {list <memplieee> employs = new ArrayList <> (); сотрудники.add (employtee.builder () .name ("") .email ("[email protected]") .idnumber ("110111198203182012") .build ()); List <DeviretDto> desitoms = new ArrayList <> (); Departments.Add (departdto.builder () .name ("Департамент") .description ("Технический отдел") .salaryType (зарплата. ClientAccountdto clientAccountdto = clientAccountdto.builder () .name ("customer") .departments (Департаменты) .build (); Request <clientAccountdto> request = buildRequest (clientAccountdto); api.post () .uri ("/v1/12345/2018-03") .body (bodyInserters.fromObject (request)) .exchange () .expectStatus (). Isequalto (400) .ExpectBody () .jsonPath ("$. }Результаты следующие, тест проходит
Если он тестируется, это изок, так как имя пользователя пустое, появится сообщение об ошибке
api.post () .uri ("/v1/12345/2018-03"). Body (bodyInserters.fromObject (request)) .exchange () .expectStatus (). isok ();Вы можете проверить информацию о приглашении на результаты
Суммировать
Вышеуказанное является проверкой вложенного типа по аннотации Springboot @Valid, представленной вам. Я надеюсь, что это будет полезно для вас. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит вам вовремя. Большое спасибо за вашу поддержку сайту wulin.com!