Springfox @RestController naming

Barium Scoorge picture Barium Scoorge · Jun 22, 2016 · Viewed 13.2k times · Source

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() {
    //...
    }
}

Answer

Fabian Nack picture Fabian Nack · Jun 22, 2016

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".