SpringBoot統合Swagger 2
10329 ワード
SwaggerUIの役割:1.すべてのインタフェースメソッドはAPIドキュメントを動的に生成することができ、手動でドキュメントを書く必要がない.研究開発は直接対応インタフェースをクリックして自己測定を完成することができる.テスト担当者はテストできます. pom.xmlファイル追加依存 swagger構成クラス を作成する
このエラーは、静的リソースパスマッピングの問題によるものです.私たちは訪問しています.http://localhost/swagger-ui.htmlこの時、このswagger-ui.html関連のすべてのフロントエンド静的ファイルはspringfox-swagger-ui-2.7.0である.jarの中.SpringBootの自動構成自体は/swagger-uiではありません.htmlこのパスは対応するディレクトリMETA-INF/resources/の下にマッピングされます.このマッピングを追加すればいいです.WebMvcConfigクラスを構築します.コードは次のとおりです.
または、WebMvcConfigurerAdapterをSwaggerConfigクラスで直接継承します.コードは次のとおりです.
特に説明しなければならないのは、SwaggerConfigというクラスは正しく配置されている必要があります.
<dependency>
<groupId>io.springfoxgroupId>
<artifactId>springfox-swagger2artifactId>
<version>2.7.0version>
dependency>
<dependency>
<groupId>io.springfoxgroupId>
<artifactId>springfox-swagger-uiartifactId>
<version>2.7.0version>
dependency>
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket api(){
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.pathMapping("/")
.useDefaultResponseMessage(false)
.select()
.paths(PathSelectors.regex("/.*"))
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder().title("Swagger ")
.contact(new Contact("swagger","","[email protected]"))
.description("Swagger ")
.version("1.0.0.0")
.build();
}
}
SpringBoot
を使用してSwagger2
を統合し、アクセスします.http://localhost/swagger-ui.html問題が発生した場合、ページにはデフォルトのエラーページが表示されます.バックグラウンドエラー:No mapping found for HTTP request with URI [/swagger-ui.html] in DispatcherServlet with name ‘dispatcherServlet’
ソリューション
このエラーは、静的リソースパスマッピングの問題によるものです.私たちは訪問しています.http://localhost/swagger-ui.htmlこの時、このswagger-ui.html関連のすべてのフロントエンド静的ファイルはspringfox-swagger-ui-2.7.0である.jarの中.SpringBootの自動構成自体は/swagger-uiではありません.htmlこのパスは対応するディレクトリMETA-INF/resources/の下にマッピングされます.このマッピングを追加すればいいです.WebMvcConfigクラスを構築します.コードは次のとおりです.
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("swagger-ui.html")
.addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
}
}
または、WebMvcConfigurerAdapterをSwaggerConfigクラスで直接継承します.コードは次のとおりです.
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class SwaggerConfig extends WebMvcConfigurerAdapter {
@Bean
public Docket api(){
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.pathMapping("/")
.useDefaultResponseMessage(false)
.select()
.paths(PathSelectors.regex("/.*"))
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder().title("Swagger ")
.contact(new Contact("swagger","","[email protected]"))
.description("Swagger ")
.version("1.0.0")
.build();
}
}
特に説明しなければならないのは、SwaggerConfigというクラスは正しく配置されている必要があります.