From 7336556cdeb3eee1d3acb08d95e940b48518dba9 Mon Sep 17 00:00:00 2001 From: Esteban Araya Date: Wed, 3 Apr 2013 16:46:56 -0600 Subject: [PATCH] Ignore ApiParam. There are several scenarios, which may necessitate a parameter to be excluded from the documentation. This works by adding an ignore flas the ApiParam annotation and then checking for it when creating the documentation. --- .../main/java/com/wordnik/swagger/annotations/ApiParam.java | 3 +++ .../scala/com/wordnik/swagger/jaxrs/JaxrsApiReader.scala | 5 ++++- .../scala/com/wordnik/swagger/jersey/JerseyApiReader.scala | 1 + .../app/play/modules/swagger/PlayApiReader.scala | 5 ++++- 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/modules/swagger-annotations/src/main/java/com/wordnik/swagger/annotations/ApiParam.java b/modules/swagger-annotations/src/main/java/com/wordnik/swagger/annotations/ApiParam.java index 01ff67bb1c..7918e46ea2 100644 --- a/modules/swagger-annotations/src/main/java/com/wordnik/swagger/annotations/ApiParam.java +++ b/modules/swagger-annotations/src/main/java/com/wordnik/swagger/annotations/ApiParam.java @@ -24,6 +24,9 @@ @Target(ElementType.PARAMETER) @Retention(RetentionPolicy.RUNTIME) public @interface ApiParam { + /** Ignores parameter in documentation. */ + boolean ignore() default false; + /** Name of the parameter */ String name() default ""; diff --git a/modules/swagger-jaxrs/src/main/scala/com/wordnik/swagger/jaxrs/JaxrsApiReader.scala b/modules/swagger-jaxrs/src/main/scala/com/wordnik/swagger/jaxrs/JaxrsApiReader.scala index e5cd20ee0a..4610a1612a 100644 --- a/modules/swagger-jaxrs/src/main/scala/com/wordnik/swagger/jaxrs/JaxrsApiReader.scala +++ b/modules/swagger-jaxrs/src/main/scala/com/wordnik/swagger/jaxrs/JaxrsApiReader.scala @@ -85,7 +85,10 @@ class JaxrsApiSpecParser(val _hostClass: Class[_], _apiVersion: String, _swagger var ignoreParam = false for (pa <- paramAnnotations) { pa match { - case apiParam: ApiParam => parseApiParam(docParam, apiParam, method) + case apiParam: ApiParam => { + ignoreParam = apiParam.ignore() + parseApiParam(docParam, apiParam, method) + } case wsParam: QueryParam => { docParam.name = readString(wsParam.value, docParam.name) docParam.paramType = readString(TYPE_QUERY, docParam.paramType) diff --git a/modules/swagger-jersey-jaxrs/src/main/scala/com/wordnik/swagger/jersey/JerseyApiReader.scala b/modules/swagger-jersey-jaxrs/src/main/scala/com/wordnik/swagger/jersey/JerseyApiReader.scala index 3909824e7b..abfd6b6fed 100644 --- a/modules/swagger-jersey-jaxrs/src/main/scala/com/wordnik/swagger/jersey/JerseyApiReader.scala +++ b/modules/swagger-jersey-jaxrs/src/main/scala/com/wordnik/swagger/jersey/JerseyApiReader.scala @@ -90,6 +90,7 @@ class JerseyApiSpecParser(val _hostClass: Class[_], _apiVersion: String, _swagge for (pa <- paramAnnotations) { pa match { case param: ApiParam => { + ignoreParam = param.ignore() parseApiParam(docParam, param, method) } case param: QueryParam => { diff --git a/modules/swagger-play2/app/play/modules/swagger/PlayApiReader.scala b/modules/swagger-play2/app/play/modules/swagger/PlayApiReader.scala index d85b92bfe5..ef70837014 100644 --- a/modules/swagger-play2/app/play/modules/swagger/PlayApiReader.scala +++ b/modules/swagger-play2/app/play/modules/swagger/PlayApiReader.scala @@ -178,7 +178,10 @@ private class PlayApiSpecParser(_hostClass: Class[_], _apiVersion: String, _swag var ignoreParam = false for (pa <- paramAnnotations) { pa match { - case apiParam: ApiParam => parseApiParam(docParam, apiParam, method) + case apiParam: ApiParam => { + ignoreParam = apiParam.ignore() + parseApiParam(docParam, apiParam, method) + } case wsParam: QueryParam => { docParam.name = readString(wsParam.value, docParam.name) docParam.paramType = readString(TYPE_QUERY, docParam.paramType)