2014-04-02 13 views

risposta

7

Ok, guardando i test unitari aiutati. Prima di tutto bisogna definire un filtro:

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

e quindi attivare in 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

Con spavalderia-SpringMVC (https://github.com/springfox/springfox) al momento non c'è modo di usare SwaggerSpecFilter. Ma rispetta l'annotazione @ApiIgnore - può essere applicata al parametro metodo che non dovrebbe apparire nei metadati generati.

1

Nell'implementazione sprigfox-swagger2 c'è un'annotazione @ApiModelProperty che esegue questa operazione.

Esempio:

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

This risposta descrive la soluzione attuale springfox utilizzando .ignoredParameterTypes o @ApiIgnore

2

Spero che questo aiuti.

Per Campi

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

per le API

@ApiIgnore 
public class MyApi {} 

Per i parametri

public void getApi(@ApiIgnore String param){} 

@ApiModelProperty(hidden="true") 
public String paramInsideClass 
Problemi correlati