私は春のブートを使用してAPIを作成していますが、私のすべてのリソースを共通のベースパス(この場合は/ api)の後ろにマッピングしたいと思います。しかし、私はRestControllerクラスに注釈をつけたくありません(@RequestMappingで注釈を付けるなど)。 は、私は次の解決策について考えているが、それらはすべて、私はむしろたくないダウンサイドがあります。スプリングブート:複数のRestControllersの共通パスを設定する方法
- ベースクラス(例えばApiRestController)を作成し、他のすべてのRestControllerはこの1つを継承有します。これは、クラスレベルの@Requestmappingが基本クラスと実装クラスの間でマージされないという欠点があります。
- すべてのRestControllerに注釈を付けるが、これはコードの重複につながる。
- server.context-pathプロパティを変更する。これには、すべてのエンドポイントがこの基本パスを使用するという欠点があります。アクチュエーター・プロジェクトによって公開されたエンドポイントさえ。
- カスタムDispatcherServletとServletRegistrationBeanを使用します。しかし、これはserver.context-pathを変更するのと同じ効果があるようです。
誰もがソリューションが私が合計した欠点なしでこれを行う方法を知っています。プロジェクトでは、RESTベースのバックエンドのみが公開され、静的コンテンツはサーバーされません(可能性のあるソリューションに影響するかどうかはわかりません)。 Restcontrollerは、複数のパッケージにまたがっています。
ありがとうございました。
私が正しく理解していれば、この機能について話している春の問題があります:https://jira.spring.io/browse/SPR-16336 – Dherik