2014-04-02 4 views

답변

7

확인을 클릭하면 단위 테스트가 도움이되었습니다. SwaggerSpecFilter를 사용하는 방법이 없습니다 순간에 자신감-springmvc (https://github.com/springfox/springfox)으로 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> 
2

에서 그것을

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 
    } 
} 

다음 사용 : 먼저 필터를 정의 할 필요가있다. 그러나 @ApiIgnore 주석을 존중합니다. 생성 된 메타 데이터에 나타나서는 안되는 메소드 매개 변수에 적용 할 수 있습니다.

1

sprigfox-swagger2 구현에는이 작업을 수행하는 주석 @ApiModelProperty이 있습니다.

예 :

@ApiModelProperty(required = false, hidden = true) 
private String internallyUsedProperty; 
0

This 답변이 도움이 .ignoredParameterTypes 또는 @ApiIgnore

2

희망을 사용 springfox에서 현재 솔루션에 대해 설명합니다. 매개 변수위한 API

@ApiIgnore 
public class MyApi {} 

에 대한 필드

@ApiModelProperty(required = false, hidden = true) 
private String hiddenProperty 

를 들어

public void getApi(@ApiIgnore String param){} 

@ApiModelProperty(hidden="true") 
public String paramInsideClass 
관련 문제