Вопрос:
Удалось ли кому-либо скрыть параметр из сгенерированной документации? Я нашел проблему здесь, но использование @ApiParam(access=»internal», required=false) до @HeaderParam казалось не работает.
Лучший ответ:
Хорошо, посмотрел на модульные тесты. Сначала вам нужно определить фильтр:
import com.wordnik.swagger.core.filter.SwaggerSpecFilter import com.wordnik.swagger.model.{Parameter, ApiDescription, Operation} import java.util class MySwaggerSpecFilter extends SwaggerSpecFilter{ override def isOperationAllowed(operation: Operation, api: ApiDescription, params: util.Map[String, util.List[String]], cookies: util.Map[String, String], headers: util.Map[String, util.List[String]]): Boolean = true override def isParamAllowed(parameter: Parameter, operation: Operation, api: ApiDescription, params: util.Map[String, util.List[String]], cookies: util.Map[String, String], headers: util.Map[String, util.List[String]]): Boolean = { if(parameter.paramAccess == Some(«internal»)) false else true } }
И затем включите его в web.xml
<servlet> <servlet-name>DefaultJaxrsConfig</servlet-name> <servlet-class>com.wordnik.swagger.jaxrs.config.DefaultJaxrsConfig</servlet-class> … <init-param> <param-name>swagger.filter</param-name> <param-value>com.example.MySwaggerSpecFilter</param-value> </init-param> </servlet> Ответ №1
С swagger-springmvc (https://github.com/springfox/springfox) на данный момент нет возможности использовать SwaggerSpecFilter. Но он уважает аннотацию @ApiIgnore – ее можно применить к параметру метода, который не должен появляться в сгенерированных метаданных.
Ответ №2
Надеюсь, что это поможет.
Для полей
@ApiModelProperty(required = false, hidden = true) private String hiddenProperty
Для Apis
@ApiIgnore public class MyApi {}
Для параметров
public void getApi(@ApiIgnore String param){} @ApiModelProperty(hidden=»true») public String paramInsideClass Ответ №3
В реализации sprigfox-swagger2 есть аннотация @ApiModelProperty, которая делает это.
Пример:
@ApiModelProperty(required = false, hidden = true) private String internallyUsedProperty; Ответ №4
Этот ответ описывает текущее решение в springfox, используя .ignoredParameterTypes или @ApiIgnore
Ответ №5
Аннотация @ApiParam(hidden = true) разрешена проблема для меня.
def myFunc(@ApiParam(hidden = true) i: Int) = {…}