-
-
Notifications
You must be signed in to change notification settings - Fork 553
Description
Is your feature request related to a problem? Please describe.
I installed the library and configure methods in a @Controller with @Operation. I was confused that some of my @Controller methods get picked and included in OpenAPI model, but others are not.
Later I learned the library is aimed to @RestController. @Controller should be configured through SpringDocUtils.getConfig().addRestControllers to be exposed.
But for version 1.5.2, any method with @ResponseBody in @Controller will be "leaked" to the OpenAPI model even that user does not configure SpringDocUtils.getConfig().addRestControllers.
Describe the solution you'd like
There are two ways.
1. Pick every @Operation in @Controller
Any @Operation should be picked no matter in @RestController or @Controller. Users expect a method get picked if they annotate @Operation on it. I think it makes more sense this way.
The problem is it may break the library's original purpose.
2. Strictly pick methods in @RestController only
@RestController onlythis solution is dropped.
It means, any methods in @Controller won't be picked unless explicitly configured SpringDocUtils.getConfig().addRestControllers. Users won't get confused if their entire @Controller is missing from OpenAPI model and will search the document to find how to expose it.
The problem is it may cause compatibility issues.
The solution 1 is preferred. This test set should be passed later after new version released.