web-dev-qa-db-ja.com

Springfox Swagger 2.0のbasePathを変更する方法

Swagger UIにアクセスできるサービスを実行しています。

http://serviceURL/swagger-ui.html

ただし、次のようなプロキシの背後にあります。

http://proxyURL/serviceName

Swagger UIによって生成されたURLは次のようになります。

http://proxyURL/

serviceNameをサフィックスとして持つ実際のURLの代わりに。私の知る限り、これはbasePathプロパティを操作することを意味します。ドキュメントに従って:

Swagger APIドキュメントは、異なるベースパスでの操作を記述できなくなりました。 1.2以前では、各リソースは個別のbasePathを持つことができました。 2.0では、仕様全体に対して、対応するbasePath(schemes + Host + basePath)が定義されています。

@Api(basePath)は非推奨であり、何をどのように使用するかは記載されていません。 Swaggerによって生成されたパスを適切に表示するにはどうすればよいですか?

私はSpring Boo t、Springfox Swaggerと注釈を使用しています。

24
Martin Asenov
@Bean
public Docket newsApi(ServletContext servletContext) {
    return new Docket(DocumentationType.SWAGGER_2).pathProvider(new RelativePathProvider(servletContext) {
        @Override
        public String getApplicationBasePath() {
            return "/serviceName" + super.getApplicationBasePath();
        }
    }).Host("proxyURL");
}
9
astafev.evgeny