zoukankan      html  css  js  c++  java
  • swagger直接上手之基础版

    1.去官网下载swagger-ui

     https://github.com/swagger-api/swagger-ui

    下载完成后,解压文件。在你项目的WEB-INF目录下,创建一个文件夹,命名为swagger(当然,你也可以用其他的名字命名),然后去刚才解压的文件中找到dist,

     将dist文件夹里面的所有文件拷贝到swagger目录下;

    2.pom.xml中引入springfox-swagger相关包(注意需要查阅swagger版本与spring版本的兼容性)

    查看兼容性:http://mvnrepository.com/

    <!-- swagger -->
    <dependency>
     <groupId>io.springfox</groupId>
     <artifactId>springfox-swagger2</artifactId>
     <version>2.1.2</version>
    </dependency>
            
    <dependency>
     <groupId>io.springfox</groupId>
     <artifactId>springfox-swagger-ui</artifactId>
     <version>2.1.2</version>
    </dependency>

    3.编写swagger主配置类

    该类的作用是将swagger注入到spring容器中,可放在任意包下,代码如下

    package com.web.manager.web.config;
    
    import org.springframework.context.annotation.Bean;
    import org.springframework.web.servlet.config.annotation.EnableWebMvc;
    
    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;
    
    
    @EnableWebMvc
    @EnableSwagger2
    public class SwaggerConfig {
    
       Boolean swaggerEnabled = true;
        
        @Bean
        public Docket createRestApi() {
            return new Docket(DocumentationType.SWAGGER_2)
                    .apiInfo(apiInfo())
                    .enable(swaggerEnabled)
                    .select() // 选择那些路径和api会生成document
                    .apis(RequestHandlerSelectors.basePackage("com.ansun.web.manager.controller.business"))
                    .paths(PathSelectors.any())
                    .build();
        }
    
        private ApiInfo apiInfo() {
            return new ApiInfoBuilder()
                    .title("投票系统 RESTful APIs")
                    .version("1.0")
                    .build();
        }
        
    }

    注意:.apis()用于设置扫描的Controller类的包,swagger会将给定路径下的所有Controller类都作为自己的有效资源,如果想让

    某个类不被扫描到,需要在类上面加上@ApiIgnore注解。

    4.applicationContext.xml中增加主配置类的配置以及静态资源映射

    <!-- Swagger配置 -->
    <bean class="com.ansun.web.manager.web.config.SwaggerConfig"></bean>

    <!-- 静态资源映射 -->
    <mvc:resources mapping="/static/**" location="/static/" cache-period="31536000"/>
    <!-- 静态资源文件,不会被Spring MVC拦截 -->
    <mvc:resources mapping="/swagger/**" location="/swagger/" />

    5.修改swagger UI中的index.html

    找到WEB-INF/swagger目录下的index.html,打开并找到如下代码

    <!-- HTML for static distribution bundle build -->
    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="UTF-8">
        <title>Swagger UI</title>
        <link rel="stylesheet" type="text/css" href="./swagger-ui.css" >
        <link rel="icon" type="image/png" href="./favicon-32x32.png" sizes="32x32" />
        <link rel="icon" type="image/png" href="./favicon-16x16.png" sizes="16x16" />
        <style>
          html
          {
            box-sizing: border-box;
            overflow: -moz-scrollbars-vertical;
            overflow-y: scroll;
          }
    
          *,
          *:before,
          *:after
          {
            box-sizing: inherit;
          }
    
          body
          {
            margin:0;
            background: #fafafa;
          }
        </style>
      </head>
    
      <body>
        <div id="swagger-ui"></div>
    
        <script src="./swagger-ui-bundle.js"> </script>
        <script src="./swagger-ui-standalone-preset.js"> </script>
        <script>
        window.onload = function() {
          // Begin Swagger UI call region
          const ui = SwaggerUIBundle({
            url: "http://192.168.1.6:8080/你的工程名称/v2/api-docs",
            dom_id: '#swagger-ui',
            deepLinking: true,
            presets: [
              SwaggerUIBundle.presets.apis,
              SwaggerUIStandalonePreset
            ],
            plugins: [
              SwaggerUIBundle.plugins.DownloadUrl
            ],
            layout: "StandaloneLayout"
          })
          // End Swagger UI call region
    
          window.ui = ui
        }
      </script>
      </body>
    </html>

    其中,需要将 http://petstore.swagger.io/v2/swagger.json  更改为  主机+端口+你的项目名称+"/v2/api-docs

        <servlet>
            <servlet-name>DispatcherServlet</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <init-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>classpath:spring/rest-servlet.xml</param-value>
            </init-param>
            <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>DispatcherServlet</servlet-name>
            <url-pattern>/service/*</url-pattern>
        </servlet-mapping>

    注意:v2/api-docs为后台接口路径,如果web.xml中配置的springmvc请求拦截不是/*,请注意加上,完整的路径为:主机+端口+你的项目名称+"/(拦截标识service)/v2/api-docs,

    6.使用swagger注解

    7.接口管理页面的访问

    启动你的项目,输入 http://127.0.0.1:8080/项目名称/swagger/index.html,即可看到结果。

  • 相关阅读:
    12套有用的免费 PSD 格式 Android UI 素材
    使用 Canvas 和 JavaScript 创建逼真的下雨效果
    在网页设计中使用漂亮字体的16个优秀例子
    Koala – 开源的前端预处理器语言图形编译工具
    BackgroundCheck – 根据图片亮度智能切换元素样式
    经典网页设计:18个示例展示图片在网页中的使用
    TogetherJS – 酷!在网站中添加在线实时协作功能
    30个令人惊叹的灵感来自自然风光的网站设计《下篇》
    太有才了!创新的街头涂鸦手绘欣赏【中篇】
    15款美丽的设备模板,帮助展示你的 APP
  • 原文地址:https://www.cnblogs.com/yunduo/p/10614737.html
Copyright © 2011-2022 走看看