darezzi
darezzi

Reputation: 33

Swagger (Springfox) only finding Models used in Controller @RequestBody (Spring Boot)

Basically, I'm interested whether it's intended that the only models Swagger shows in swagger-ui are models used in RestController methods. It detects both my DTOs that I filled with @RequestBody, but it does not detect the User model, even with the ApiModel annotation. How to I go around this without making a dummy controller method?

For example:

@PostMapping("/signin")
@ApiOperation
public String login(
        @ApiParam(value = "The login credentials DTO (username and password)", required = true) 
        @RequestBody
        @Valid LoginCredentialsDTO loginCredentialsDTO) {
    return userService.login(loginCredentialsDTO);
}

It detects the Model "LoginCredentialsDTO" because it was used here in the controller method.

Since I only use DTOs in my controller, it's not detecting my main model (User). I don't want to have to make a dummy method just for Swagger to be able to detect all my models.

Upvotes: 3

Views: 1813

Answers (1)

FredvN
FredvN

Reputation: 544

Swagger describes the external interface of your api. When your User model is not used externally is will not be visible. See also swagger.io/docs/specification/2-0/basic-structure

Upvotes: 2

Related Questions