0
У меня есть приложение Spring Web MVC с сервисами отдыха, и я стараюсь использовать Springfox для автоматических документов для него.Пустое поле Тип данных в springfox swagger ui
Я использую
io.springfox:springfox-swagger2:2.5.0
io.springfox:springfox-swagger-ui:2.5.0
org.webjars:swagger-ui:2.1.4
Мои SwaggerConfig:
@Configuration
@EnableSwagger2
@Profile("dev")
public class SwaggerConfig {
@Bean
public Docket api() {
Docket docket = new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build().apiInfo(apiInfo());
return docket;
}
}
И:
@Configuration
@EnableWebMvc
@Profile("dev")
public class SwaggerWebMvcConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("swagger-ui.html")
.addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
}
}
У меня есть контроллер отдыха:
@Api
@RestController
@RequestMapping(RegistrationRestController.ROOT_PATH)
public class RegistrationRestController {
private final static Logger log = LogManager.getLogger(RegistrationRestController.class);
public static final String ROOT_PATH = "/rest/registration";
private final ResponseUtil responseUtil;
private final UserService userService;
@Autowired
public RegistrationRestController(ResponseUtil responseUtil, UserService userService) {
log.debug("Instantiate RegistrationRestController bean");
this.responseUtil = Objects.requireNonNull(responseUtil);
this.userService = Objects.requireNonNull(userService);
}
@RequestMapping(value = {""}, method = RequestMethod.POST)
@ApiResponses({
@ApiResponse(code = 200, message = "Create new user and authorize them. Returns access token", response = AccessTokenDTO.class)
})
@ApiOperation(value = "Create new user", response = AccessTokenDTO.class)
public ResponseDTO newUserRegistration(@Valid @ApiParam(required = true) RegistrationDTO registrationDTO) {
log.debug("POST {} with registrationDTO='{}'", ROOT_PATH, registrationDTO.toString());
AccessTokenDTO accessToken = userService.createUserAndAuthorize(registrationDTO);
return responseUtil.wrapResult(accessToken);
}
}
И RegistrationDTO:
@ApiModel
public class RegistrationDTO {
@NotNull(message = "registrationDTO.phone.notNull.fail")
@Pattern(regexp = "[0-9]{10}", message = "registrationDTO.phone.pattern.fail")
private String phone;
@NotNull(message = "registrationDTO.email.notNull.fail")
@Email(message = "registrationDTO.email.pattern.fail")
private String email;
@NotNull(message = "registrationDTO.lastName.notNull.fail")
@Size(min = 1, message = "registrationDTO.lastName.size.fail")
private String lastName;
@NotNull(message = "registrationDTO.firstName.notNull.fail")
@Size(min = 1, message = "registrationDTO.firstName.size.fail")
private String firstName;
@NotNull(message = "registrationDTO.password.notNull.fail")
@Size(min = 6, message = "registrationDTO.password.size.fail")
private String password;
@NotNull(message = "registrationDTO.passwordConfirmation.notNull.fail")
@Size(min = 6, message = "registrationDTO.passwordConfirmation.size.fail")
private String passwordConfirmation;
@AssertTrue(message = "registrationDTO.isPasswordMatch.fail")
public boolean isPasswordMatch() {
return Objects.equals(password, passwordConfirmation);
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getPasswordConfirmation() {
return passwordConfirmation;
}
public void setPasswordConfirmation(String passwordConfirmation) {
this.passwordConfirmation = passwordConfirmation;
}
@Override
public String toString() {
return "RegistrationDTO{" +
"phone='" + phone + '\'' +
", email='" + email + '\'' +
", lastName='" + lastName + '\'' +
", firstName='" + firstName + '\'' +
'}';
}
}
Но когда я открываю Localhost: 8080/чванство-ui.html я вижу пустой тип данных для параметра RegistrationDTO.
Что я делаю неправильно? :(