2014-04-02 10 views

Odpowiedz

7

Ok, patrząc na testy jednostkowe pomógł. Najpierw trzeba zdefiniować filtr:

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

a następnie włączyć go w 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

Z Swagger-springmvc (https://github.com/springfox/springfox) w tej chwili nie ma sposobu, aby korzystać SwaggerSpecFilter. Ale respektuje adnotację @ApiIgnore - można ją zastosować do parametru metody, który nie powinien pojawiać się w generowanych metadanych.

1

W implementacji sprigfox-swagger2 znajduje się adnotacja @ApiModelProperty, która to robi.

przykład:

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

This odpowiedź opisano aktualny rozwiązanie springfox pomocą .ignoredParameterTypes lub @ApiIgnore

2

nadzieję, że to pomaga.

dla pól

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

Dla Apis

@ApiIgnore 
public class MyApi {} 

dla parametrów

public void getApi(@ApiIgnore String param){} 

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