Skip to content

Commit d0c4832

Browse files
committed
Add ability to annotate parameters by Hidden annotaion
1 parent e6d3fa3 commit d0c4832

File tree

5 files changed

+38
-1
lines changed

5 files changed

+38
-1
lines changed

modules/swagger-annotations/src/main/java/io/swagger/v3/oas/annotations/Hidden.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,15 @@
55
import java.lang.annotation.Target;
66

77
import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
8+
import static java.lang.annotation.ElementType.PARAMETER;
89
import static java.lang.annotation.ElementType.TYPE;
910
import static java.lang.annotation.ElementType.FIELD;
1011
import static java.lang.annotation.ElementType.METHOD;
1112

1213
/**
1314
* Marks a given resource, class or bean type as hidden, skipping while reading / resolving
1415
**/
15-
@Target({METHOD, TYPE, FIELD, ANNOTATION_TYPE})
16+
@Target({PARAMETER, METHOD, TYPE, FIELD, ANNOTATION_TYPE})
1617
@Retention(RetentionPolicy.RUNTIME)
1718
public @interface Hidden {
1819

modules/swagger-core/src/main/java/io/swagger/v3/core/util/ParameterProcessor.java

+3
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,9 @@ public static Parameter applyAnnotations(
9999
}
100100

101101
for (Annotation annotation : annotations) {
102+
if (annotation instanceof io.swagger.v3.oas.annotations.Hidden) {
103+
return null;
104+
}
102105
if (annotation instanceof io.swagger.v3.oas.annotations.Parameter) {
103106
io.swagger.v3.oas.annotations.Parameter p = (io.swagger.v3.oas.annotations.Parameter) annotation;
104107
if (p.hidden()) {

modules/swagger-jaxrs2/src/main/java/io/swagger/v3/jaxrs2/DefaultParameterExtension.java

+2
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,8 @@ public ResolvedParameter extractParameters(List<Annotation> annotations,
8787
pp.setIn(COOKIE_PARAM);
8888
pp.setName(param.value());
8989
parameter = pp;
90+
} else if (annotation instanceof io.swagger.v3.oas.annotations.Hidden) {
91+
return new ResolvedParameter();
9092
} else if (annotation instanceof io.swagger.v3.oas.annotations.Parameter) {
9193
if (((io.swagger.v3.oas.annotations.Parameter) annotation).hidden()) {
9294
return new ResolvedParameter();

modules/swagger-jaxrs2/src/test/java/io/swagger/v3/jaxrs2/annotations/operations/AnnotatedOperationMethodTest.java

+18
Original file line numberDiff line numberDiff line change
@@ -1342,6 +1342,24 @@ public void testHiddenAnnotatedUserResource() throws IOException {
13421342
" content:\n" +
13431343
" 'application/json': {}\n" +
13441344
" 'application/xml': {}\n" +
1345+
" /user/3:\n" +
1346+
" get:\n" +
1347+
" summary: Select user\n" +
1348+
" operationId: selectUser\n" +
1349+
" parameters:\n" +
1350+
" - name: id\n" +
1351+
" in: query\n" +
1352+
" description: User id\n" +
1353+
" required: true\n" +
1354+
" schema:\n" +
1355+
" type: integer\n" +
1356+
" format: int32\n" +
1357+
" responses:\n" +
1358+
" default:\n" +
1359+
" description: default response\n" +
1360+
" content:\n" +
1361+
" 'application/json': {}\n" +
1362+
" 'application/xml': {}\n" +
13451363
"components:\n" +
13461364
" schemas:\n" +
13471365
" UserResourceBean:\n" +

modules/swagger-jaxrs2/src/test/java/io/swagger/v3/jaxrs2/resources/HiddenAnnotatedUserResource.java

+13
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,11 @@
66
import io.swagger.v3.oas.annotations.Operation;
77
import io.swagger.v3.oas.annotations.Parameter;
88

9+
import javax.ws.rs.GET;
910
import javax.ws.rs.POST;
1011
import javax.ws.rs.Path;
1112
import javax.ws.rs.Produces;
13+
import javax.ws.rs.QueryParam;
1214
import javax.ws.rs.core.Response;
1315

1416
@Path("/user")
@@ -50,6 +52,17 @@ public Response createUserWithHiddenBeanProperty(
5052
@Parameter(description = "Created user object", required = true) UserResourceBean user) {
5153
return Response.ok().entity("").build();
5254
}
55+
56+
@GET
57+
@Operation(summary = "Select user")
58+
@Path("/3")
59+
public Response selectUser(
60+
@QueryParam("id") @Parameter(description = "User id", required = true) Integer id,
61+
@QueryParam("name") @Parameter(hidden = true) String name,
62+
@QueryParam("secondName") @Hidden String secondName
63+
) {
64+
return Response.ok().entity("").build();
65+
}
5366
}
5467

5568
public class UserResourceBean {

0 commit comments

Comments
 (0)