微服務系列之-Swagger2集成

一.swagger簡介

Swagger是一個規範和完整的框架,用於生成,描述,調用和可視化RESTful風格的Web,總目標是作爲服務器以同樣的速度來更新。文件的方法,參數和模型緊密集成到服務器端的代碼,允許API來使用保持同步。Swagger讓部署管理和使用功能強大的API簡單起來。
我自己用了這款集成插件,用起來十分的方便每次接口寫完只需要啓動服務,打開swagger路徑就可以很好的查看自己的接口請求方式,入參、出參,不用特意找類似於postman這種接口調用工具,用起來十分的舒心。

二.服務集成

  1. 依賴包
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
            <exclusions>
                <exclusion>
                    <artifactId>guava</artifactId>
                    <groupId>com.google.guava</groupId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>
  1. 文件初始化配置
package org.qy.swagger.client;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/**
 * @Description:	des
 * @Author:		方宇康
 * @CreateDate:	2020/4/24 14:34
 * @Version:      	1.0.0.1
 * @Company:       聯通智網科技有限公司
 */
@Configuration
@EnableSwagger2
public class Swagger2
{
    /**
     * swagger2的配置文件,這裏可以配置swagger2的一些基本的內容,比如掃描的包等等
     */
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("org.qy.swagger.client.controller"))
                .paths(PathSelectors.any())
                .build();
    }

    /**
     * 構建 api文檔的詳細信息函數,注意這裏的註解引用的是哪個
     */
    private ApiInfo apiInfo()
    {
        return new ApiInfoBuilder()
                .title("QY SWAGGER - Swagger2")
                .description("QY SWAGGER")
                .termsOfServiceUrl("https://gitee.com/fangyukang/spring-cloud")
                .version("1.0")
                .build();
    }

    private CorsConfiguration buildConfig()
    {
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        // 允許任何域名使用
        corsConfiguration.addAllowedOrigin("*");
        // 允許任何頭
        corsConfiguration.addAllowedHeader("*");
        // 允許任何方法(post、get等)
        corsConfiguration.addAllowedMethod("*");
        return corsConfiguration;
    }

    @Bean
    public CorsFilter corsFilter()
    {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        // 對接口配置跨域設置
        source.registerCorsConfiguration("/**", buildConfig());
        return new CorsFilter(source);
    }
}

  1. 啓動路徑

http://ip:port/swagger-ui.html

2020-04-29 14:43:54.647  INFO 19344 --- [nfoReplicator-0] com.netflix.discovery.DiscoveryClient    : DiscoveryClient_QYSWAGGERCLIENT/DESKTOP-CJVEMFP:qyswaggerclient:8082 - registration status: 204
2020-04-29 14:43:54.671  INFO 19344 --- [           main] s.d.s.w.s.ApiListingReferenceScanner     : Scanning for api listing references
2020-04-29 14:43:54.886  INFO 19344 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8082 (http) with context path ''
2020-04-29 14:43:54.888  INFO 19344 --- [           main] .s.c.n.e.s.EurekaAutoServiceRegistration : Updating port to 8082
2020-04-29 14:43:54.890  INFO 19344 --- [           main] o.qy.swagger.client.SwaggerApplication   : Started SwaggerApplication in 15.264 seconds (JVM running for 17.537)
2020-04-29 14:43:54.894  INFO 19344 --- [           main] o.qy.swagger.client.SwaggerApplication   : 後臺管理服務客戶端啓動成功! Swagger2: http://127.0.0.1:8082/swagger-ui.html
2020-04-29 14:43:57.374  INFO 19344 --- [)-10.141.226.37] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring FrameworkServlet 'dispatcherServlet'
2020-04-29 14:43:57.374  INFO 19344 --- [)-10.141.226.37] o.s.web.servlet.DispatcherServlet        : FrameworkServlet 'dispatcherServlet': initialization started
2020-04-29 14:43:57.393  INFO 19344 --- [)-10.141.226.37] o.s.web.servlet.DispatcherServlet        : FrameworkServlet 'dispatcherServlet': initialization completed in 19 ms

  1. 接口調用
    在這裏插入圖片描述
    在這裏插入圖片描述
    可以很方便的測試接口,提高開發效率。

項目地址:微服務集成-謙奕爸爸

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章