2016-06-23 5 views
2

このチュートリアルでは、Swagger for Jersey2を使用しています:https://github.com/swagger-api/swagger-core/wiki/Swagger-Core-Jersey-2.X-Project-Setup-1.5カスタムアプリケーションクラス。 Swaggerを適切に初期化するには、getClasses()のオーバーライドを実装する必要があります。スワッガーと自動リソースディスカバリー

これは、私のリソースのすべてのクラスを手動でHashSetに追加する必要があることを意味します。私がしなければ、すべてのエンドポイントは404を返します。しかし、Swaggerを使用していないときは、メソッドをオーバーライドする必要はなく、すべてのRESTリソースがJAX-RSアノテーションによって自動的に検出されます。

スガッガークラスを登録する方法はありますか?同時に私の個人的なリソースの自動検出を保持していますか?

答えて

2

Applicationを拡張するResourceConfigを使用してください。 ResourceConfigにはpackagesメソッドがあり、パッケージスキャンですべてのクラスを登録できます。にregisterを呼び出すSwaggerコンポーネントを登録できます。このすべてをコンストラクタで行うことができます。

@ApplicationPath("/api") 
public class AppConfig extends ResourceConfig { 
    public AppConfig() { 
     packages("the.packages.to.scan"); 
     register(SwaggerComponent.class); 
    } 
} 

参照:別のオプションの

  • Swagger overrides Path-Annotations。標準のJAX-RS APIを使用します。しかし、クラスパスのスキャンに関するリンクと、それを使用しない理由も参照してください。パッケージをより良くスキャンします。
関連する問題