2016-10-26 12 views
1

私はspring-boot-starter-parent 1.3.3.RELEASEを使用しています。私はこのlinkを使用して他の不要なエンドポイントを無効にしている闊歩UISwagger UIからリポジトリコントローラを非表示にする方法

enter image description here

でリポジトリコントローラを無効にすることができません。

スワッガーUIからリポジトリコントローラを無効にするにはどうすればいいですか?親切に入力してください

私が書いた検索リポジトリだけを返しますが、エンティティのエンドポイントも必要です。これらのエンティティのエンドポイントは、春のデフォルトによって戻されます。

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

親切に画像を参照してください。enter image description here

答えて

0

ので、それが唯一与えられた基本パッケージのためにあなたのAPIを作成し、簡単にDocketあなたApplicationクラスでは、あなたがフィルタリングすることができ、パッケージ名を初期化:

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

別の解決策:

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

おかげ@Ozdemir。私は知っている、それは期待どおりに動作しますが、私は春のブート(org.springframework.data)が返すエンティティ関連のエンドポイントが必要ですどのように私はこれを処理するのですか? – SST

+0

@SSTなぜあなたはその設定に基本パッケージを入力しないでください。したがって、springbootパッケージには入りませんが、とにかく別の解決策を提供しました。 –

+0

いいえこれは機能しません。あなたが提供されているものを置くと、Entity Controllerは返されません。 – SST

0

自分でPredicateを作成し、Docketの設定に追加して同じ問題を解決しました。 RequestHandlerオブジェクトからグループ名(リポジトリコントローラ)を取得できます。

マイコード:

@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"); 
     } 
    }; 
} 
関連する問題