2016-10-26 4 views
1

Ich verwende Spring-Boot-Starter-Elternteil 1.3.3.RELEASE. Ich bin nicht in der Lage Repository-Controller in Swagger UIWie verstecken Repository-Controller von Swagger UI

enter image description here

ich die anderen unerwünschten Endpunkte dieses link mit deaktiviert haben zu deaktivieren.

Wie zu deaktivieren Repository-Controller von Swagger UI? bitte geben Sie Ihre Eingaben

Wenn Sie die folgen, gibt es nur das Such-Repository, das von mir geschrieben, aber ich brauche die Entität Endpunkte auch. Diese Entitätsendpunkte werden im Frühjahr zurückgestellt.

.apis(RequestHandlerSelectors.basePackage("bla.blablah.bla")) 

bitte auf das Bild beziehen: enter image description here

Antwort

0

Wenn Ihre Docket in Ihrer Application Klasse zu initialisieren, können Sie Paketnamen leicht filtern, deshalb wird es Ihre api erstellen für nur bestimmtes Basispaket:

@Bean 
public Docket swaggerSpringMvcPlugin(){ 
    return new Docket(DocumentationType.SWAGGER_2)// 
      .select().apis(RequestHandlerSelectors.basePackage("com.blabla.bla"))// 
      .build(); 
} 

Eine andere Lösung:

return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select() 
      .apis(Predicates.not(RequestHandlerSelectors.basePackage("org.springframework.boot"))) 
      .build(); 
+0

Dank @Ozdemir. Ich weiß, es wird wie erwartet funktionieren, aber ich brauche die Entität bezogenen Endpunkte, die Spring Boot (org.springframework.data) zurückgibt dann Wie gehe ich damit um? – SST

+0

@SST warum gibst du einfach dein Basispaket in diese Einstellung ein, daher werden Springboot-Pakete nicht in das Programm aufgenommen, aber ich habe dir trotzdem eine andere Lösung zur Verfügung gestellt, überprüfe die Antwort noch einmal. –

+0

Nein. Dies funktioniert nicht. Wenn ich das, was Sie zur Verfügung gestellt bekommen, wird Entity Controller nicht zurückgegeben. – SST

0

Ich löste das gleiche Problem, indem ich meine eigene Predicate erstelle und sie zur Konfiguration hinzufüge. Sie können den Gruppennamen (Repository-Controller) vom RequestHandler-Objekt abrufen.

Mein Code:

@Bean 
public Docket api() { 
    return new Docket(DocumentationType.SWAGGER_2) 
     .select()         
      .apis(GroupNameFilter()) 
      .build();           
} 

private Predicate<RequestHandler> GroupNameFilter(){ 
    return new Predicate<RequestHandler>() { 
     @Override 
     public boolean apply(RequestHandler input) { 
      return !input.groupName().equals("repository-controller"); 
     } 
    }; 
} 
Verwandte Themen