Barium Scoorge
Barium Scoorge

Reputation: 2008

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

Upvotes: 25

Views: 26117

Answers (4)

Melih
Melih

Reputation: 776

For OpenApi v3:

@Tag(name = "name")

Upvotes: 5

Akshay
Akshay

Reputation: 3866

@Tags(name = "name", description = "description") As per OpenApi v3

Upvotes: 6

Narendra
Narendra

Reputation: 161

Use both tags and description to avoid controller name API grouping. For example:

@Api(
  tags="Application Status.",
  description = "Provides Application Status API's.
")

Upvotes: 9

Fabian Nack
Fabian Nack

Reputation: 724

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

Upvotes: 47

Related Questions