Come nascondere un parametro spavalderia?

qualcuno riesce a nascondere un parametro da documentazione generata? Ho trovato un problema qui, ma utilizzando @ApiParam(access="internal", required=false) prima @HeaderParam non sembra funzionare.

OriginaleL’autore yevgeniy mordovkin | 2014-04-02

6 Replies
  1. 8

    Ok, guardando il test di unità aiutato. 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>

    OriginaleL’autore yevgeniy mordovkin

  2. 7

    Spero che questo aiuta.

    Per I 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

    OriginaleL’autore Ronny Shibley

  3. 3

    Con spavalderia-springmvc (https://github.com/springfox/springfox) al momento non c’è alcun modo per utilizzare SwaggerSpecFilter. Ma rispetta @ApiIgnore annotazione – può essere applicato al parametro di metodo che non dovrebbe apparire in generato metadati.

    OriginaleL’autore Paul Lysak

  4. 1

    In sprigfox-swagger2 attuazione c’è un’annotazione @ApiModelProperty che fa questo.

    Esempio:

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

    OriginaleL’autore magiccrafter

  5. 0

    Questo risposta descrive l’attuale soluzione in springfox utilizzando .ignoredParameterTypes o @ApiIgnore

    OriginaleL’autore gogstad

  6. 0

    Annotazione @ApiParam(hidden = true) è stato risolto un problema per me.

    def myFunc(@ApiParam(hidden = true) i: Int) = {...}
    non esiste. almeno non in 1.5.0
    Verificato su una molla a base di progetto, questo funziona

    OriginaleL’autore Vasyl Yamnych

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *