SpringBootではSwagger UIをどうやって使うか?


スワッグ
Swaggerは、RESTfulのAPIを説明するために、サービスインターフェースを定義するために、言語とは関係のない仕様とフレームワークである。APIのための優れたドキュメントとクライアントライブラリの作成に焦点を当てています。SwaggagerをサポートするAPIは、API方法のために相互作用する文書を生成してもよく、ユーザーが可視化の方法で実験することによって、要求と応答、ヘッダファイルとリターンコードを確認することができ、APIの機能を発見することができる。
swaggerはAPI文書を定義するために使用されます。
利点:
  • 前後端分離開発
  • API文書は非常に明確である
  • テストの時、URLを使ってブラウザを入力する必要がないので、Controller
  • にアクセスします。
  • 従来の入力URLの試験方法は、post要求の送信に対して比較的に面倒である(もちろん、postmanのようなブラウザプラグインを使用することができる)
  • spring-bootとswaggerのセットは比較的に簡単です。
    SpringBoot Swagger UIを埋め込む
    ステップ
    1.jarパッケージ導入
    
    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger-ui</artifactId>
      <version>2.2.2</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger2</artifactId>
      <version>2.2.2</version>
      <scope>compile</scope>
    </dependency>
    2.SprigBootによるSwagerConfigの配置
    
    @Configuration
    @EnableSwagger2
    public class SwaggerConfig {
      @Bean
      public Docket newsApi() {
        //return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().paths(PathSelectors.any()).build();
        Docket docket = new Docket(DocumentationType.SWAGGER_2);
        docket.enable(true);
        docket.apiInfo(apiInfo()).select().paths(PathSelectors.any()).build();
        return docket;
      }
    
      private ApiInfo apiInfo() {
        return new ApiInfoBuilder().title("        ").description("              ,         ")
            .termsOfServiceUrl("http://www-03.ibm.com/software/sla/sladb.nsf/sla/bm?Open").contact("test")
            .license("China Red Star Licence Version 1.0").licenseUrl("#").version("1.0").build();
      }
    }
    3.WebConfig配置説明
    ここで注意すべき問題があります。WebConfigに直接WebMvcAutoConfigrationAdapterを引き継ぐのではなく、WebMvcConfigrer Adapterを継承してください。でないと、Swaggerのページは出られません。
    
    @Configuration
    @EnableWebMvc
    public class WebConfig extends WebMvcAutoConfigurationAdapter {
    
      @Override
      public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**");
      }
    
      @Bean
      public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
        return new PropertySourcesPlaceholderConfigurer();
      }
    
      @Bean
      public Filter characterEncodingFilter() {
        CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
        characterEncodingFilter.setEncoding("UTF-8");
        characterEncodingFilter.setForceEncoding(true);
        return characterEncodingFilter;
      }
    
      @Bean
      public MappingJackson2HttpMessageConverter converter() {
        MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
        return converter;
      }
    
      @Bean
      public ViewResolver getViewResolver() {
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setViewClass(JstlView.class);
        resolver.setPrefix("/jsp");
        resolver.setSuffix(".jsp");
        return resolver;
      }
    
      @Bean
      public StandardServletMultipartResolver getStandardServletMultipartResolver() {
        return new StandardServletMultipartResolver();
      }
    }
    4.Swaggarr UIページアクセス
    http://localhost:8080/projectName/swagger-ui.舸!/
    以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。