Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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.

like image 825
darezzi Avatar asked Feb 20 '26 10:02

darezzi


1 Answers

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

like image 111
FredvN Avatar answered Feb 23 '26 00:02

FredvN



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!