zoukankan      html  css  js  c++  java
  • Springboot 4.Springboot 集成SwaggerUi

    SwaggerUi就是自动生成接口文档的这么一个类似于插件的工具,可以直接访问接口。

    首先打开pom文件,将插件引进来,然后增加一个属性<properties>,用来设置版本号的,然后直接用${}引用。

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <parent>
            <artifactId>JavaInterfaceTest</artifactId>
            <groupId>com.peixm.code</groupId>
            <version>1.0-SNAPSHOT</version>
        </parent>
        <modelVersion>4.0.0</modelVersion>
    
        <artifactId>Chapter10</artifactId>
    
        <properties>
            <swagger.version>2.6.1</swagger.version>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    
    
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger2</artifactId>
                <version>${swagger.version}</version>
            </dependency>
    
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger-ui</artifactId>
                <version>${swagger.version}</version>
            </dependency>
    
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>1.16.14</version>
            </dependency>
        </dependencies>
    
    </project>

    然后创建一个config包,在创建一个类SwaggerConfig.java,用来配置swager

    package com.course.config;
    
    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  //在springboot里面专门为了加载配置文件的标签
    @EnableSwagger2   //自动加载配置文件
    public class SwaggerConfig {
        @Bean
        public Docket api(){
            return new Docket(DocumentationType.SWAGGER_2)
                    .apiInfo(apiInfo())
                    .pathMapping("/")
                    .select()
                    .paths(PathSelectors.regex("/.*"))   //匹配那些访问的方法
                    .build();
        }
    
        private ApiInfo apiInfo() {
            //http://localhost:8888/swagger-ui.html
            return new ApiInfoBuilder().title("我的接口文档")
                    .contact(new Contact("xiaomin","","553238711@qq.com"))
                    .description("这是我的swaggerui生成的接口文档")
                    .version("1.0.0.0")
                    .build();
        }
    
    }

    然后在想要在swagger看到的接口类的类名上添加注解:@Api(value = "/",description = "这是我全部的get方法"),在每个方法上面添加  @ApiOperation(value = "通过这个方法可以获取到cookies的值",httpMethod ="GET"),(或者post)value就是一个描述,描述这个方法是做什么的。

    package com.course.server;
    
    import io.swagger.annotations.Api;
    import io.swagger.annotations.ApiOperation;
    import org.springframework.web.bind.annotation.*;
    
    import javax.servlet.http.Cookie;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.util.HashMap;
    import java.util.Map;
    import java.util.Objects;
    
    @RestController    //被告诉我是你需要扫描的类
    @Api(value = "/",description = "这是我全部的get方法")
    public class MyGetMethod {
    
        @RequestMapping(value = "/getCookies",method = RequestMethod.GET)    //访问的路径是什么
        @ApiOperation(value = "通过这个方法可以获取到cookies的值",httpMethod ="GET")
        public String getCookies(HttpServletResponse response){
            //HttpServerletRequest    装请求信息
            //HttpServerletResponse   装响应信息
            Cookie cookie = new Cookie("login","ture");
            response.addCookie(cookie);
    
            return "恭喜你获得cookies信息成功";
        }
    
        /**
         * 要求客户端携带cookies访问
         * */
    
        @RequestMapping(value = "/get/with/cookies",method = RequestMethod.GET)
        @ApiOperation(value = "要求客户端携带cookies访问",httpMethod = "GET")
        public String getWithCookies(HttpServletRequest request){
            Cookie[] cookies = request.getCookies();
            if(Objects.isNull(cookies)){
                return "你必须携带cookies信息来";
            }
    
            for(Cookie cookie : cookies){
                if(cookie.getName().equals("login") && cookie.getName().equals("true")){
                    return "恭喜你访问成功";
                }
            }
            return "你必须携带cookies信息来";
        }
    
        /**
        * 开发一个需要携带参数才能访问的get请求
        * 第一种实现方式是 url: ip:port/get/with/param?key=value&key=value
        * 模拟获取商品列表  开始页数,结束的页数,一页20条数据
        * */
    
        //第一种需要携带参数访问的get请求
        @RequestMapping(value = "/get/with/param",method = RequestMethod.GET)
        @ApiOperation(value = "携带参数才能访问的get请求",httpMethod = "GET")
        public Map<String,Integer> getList(@RequestParam Integer start,
                                           @RequestParam Integer end){
            Map<String,Integer> myList = new HashMap<>();
            myList.put("鞋",400);
            myList.put("衬衫",300);
            myList.put("干脆面",1);
    
            return myList;
    
        }
    
        /**
         *第2种需要携带参数访问的get请求
         * url:  ip:port/get/with/param/10/20
         * */
    
        @RequestMapping(value = "/get/with/param/{start}/{end}")
        @ApiOperation(value = "第2种需要携带参数访问的get请求",httpMethod = "GET")
        public Map myGetList(@PathVariable Integer start,
                             @PathVariable Integer end){
    
            Map<String,Integer> myList = new HashMap<>();
            myList.put("鞋",400);
            myList.put("衬衫",300);
            myList.put("干脆面",1);
    
            return myList;
        }
    
    }

    然后改变启动文件里面的要检测的包

    然后在浏览器输入:http://localhost:8888/swagger-ui.html 就会出现所有的接口

    点击接口可以进行接口测试:try out就可以请求

  • 相关阅读:
    Asp.net 动态添加Meta标签
    【转】在SharePoint Server 2010中更改“我的网站”
    SPQuery DateTime 类型查询
    Asp.net Web Application 打开 SharePoint 2010 Site 错误 The Web application at could not be found
    How To Create SharePoint 2010 Site Collection In Its Own DB
    C# 文件打印
    面试题 java集合
    《深入理解Java虚拟机》(六)堆内存使用分析,垃圾收集器 GC 日志解读
    《深入理解Java虚拟机》(五)JVM调优
    《深入理解Java虚拟机》(四)虚拟机性能监控与故障处理工具
  • 原文地址:https://www.cnblogs.com/peiminer/p/9687813.html
Copyright © 2011-2022 走看看