qualcuno è riuscito a nascondere un parametro dalla documentazione generata? Ho trovato un problema here, ma l'utilizzo di @ApiParam(access="internal", required=false)
prima di @HeaderParam
non sembrava funzionare.Come nascondere un parametro in swagger?
5
A
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
- 1. Come definire un parametro facoltativo nel percorso usando lo swagger
- 2. Swagger/OpenAPI - usa $ ref per passare un parametro definito riutilizzabile
- 3. Swagger: è possibile rendere costante/readonly un parametro di funzionamento?
- 4. Swagger 2.0 - come rendere necessario "uno o l'altro" parametro?
- 5. aprire un collegamento da Java, come nascondere GET parametro
- 6. Nascondere un parametro di tipo "locale" in Java
- 7. Come convertire Java Swagger Annotation in Swagger json schema?
- 8. Nascondi intestazione Swagger (Swashbuckle)
- 9. Swagger 2.0: Come specificare un parametro di ingresso di tipo 'oggetto'
- 10. Esiste un modo migliore per nascondere il parametro BackBarButtonItem?
- 11. Come nascondere un UIBarButtonItem?
- 12. swagger-node-express: come caricare il file da swagger-ui?
- 13. Come disattivare lo swagger-ui in produzione
- 14. Come descrivere un modello JSON complesso in swagger
- 15. Come specificare che un pdf viene restituito in swagger?
- 16. Come raggruppare più parametri in Swagger 2.0?
- 17. Come definire una mappa in swagger?
- 18. Nascondere ListView Header/Nascondere un singolo divisore in un elenco
- 19. Annotazioni dei dati in Swagger
- 20. Come nascondere un sottomenu in QMenu
- 21. Come nascondere un modello in Wordpress?
- 22. Come nascondere un pulsante in Xcode 6?
- 23. Come nascondere/mostrare un processo in C#?
- 24. Come iniziare con swagger-ui
- 25. Come nascondere il miniprofiler?
- 26. Come ottenere il parametro UI di Swagger da menu a discesa invece di immissione testo
- 27. Come posso "nascondere" un UIRefreshControl?
- 28. Come nascondere un tag select?
- 29. Modifica il nome del parametro per Swagger JSON generato tramite Swashbuckle in .NET Web API 2
- 30. Nascondere un pulsante in Javascript