Search code examples
spring-bootswaggerspringfox

Springfox @RestController naming


I'm getting some minor troubles using Springfox. I can't set a name to @RestController classes.

I'm using Spring boot and Swagger2.

The following code will produce a controller named "rest-status-controller" in springfox ui. I've expected a "Application Status" instead. Is there another config I'm not aware of ?

@Api("Application Status")
@RestController
@RequestMapping("/rest/status")
public class RestStatusController {

    @ApiOperation(value="Get components current status")
    @RequestMapping(method = RequestMethod.GET, produces=MediaType.APPLICATION_JSON)
    public String global() {
    //...
    }

    @ApiOperation(value="Get mysql current status")
    @RequestMapping(value="/mysql" method = RequestMethod.GET, produces=MediaType.APPLICATION_JSON)
    public String mysql() {
    //...
    }
}

Solution

  • Try to use the tags parameter of the @Api Annotation to change the name of the grouping of your RestController methods. Excerpt from the corresponding Java Doc (shortened):

    /**
     * A list of tags for API documentation control.
     * Tags can be used for logical grouping of operations by resources or any other qualifier.
     */
    String[] tags() default "";
    

    In your case, just use:

    @Api(tags = "Application Status")
    @RestController
    @RequestMapping("/rest/status")
    public class RestStatusController {
        ...
    }
    

    This should group all documented operations from RestStatusController with the tag "Application Status".