zoukankan      html  css  js  c++  java
  • spring boot整合swagger ui (RESTFUL接口的文档在线自动生成+功能测试功能软件,前后端分离快速开发)

      swagger ui可以通过来拦截controller层,生成请求API,并将其展示在浏览器当中。我们可以直接通过浏览器来查看和调试接口。

     1 添加maven依赖

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

    2 增加swagger配置类

    package com.springboot.config;
    
    import static springfox.documentation.builders.PathSelectors.regex;
    
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    import springfox.documentation.builders.RequestHandlerSelectors;
    import springfox.documentation.spi.DocumentationType;
    import springfox.documentation.spring.web.plugins.Docket;
    import springfox.documentation.swagger2.annotations.EnableSwagger2;
    
    /**
     * SwaggerConfig
     */
    @Configuration
    @EnableSwagger2
    public class Swagger2Configuration {
    
        /**
         * 
         * @return
         */
        @Bean
        public Docket accessHello() {
            return new Docket(DocumentationType.SWAGGER_2).groupName("hello")// 定义组
                    .select() // 选择那些路径和api会生成document
                    .apis(RequestHandlerSelectors.basePackage("com.springboot.controller")) // 拦截的包路径
                    .paths(regex("/hello/.*"))// 拦截的接口路径
                    .build(); // 创建
                    //.apiInfo(apiInfo()); // 配置说明
        }
        
        /**
         * 
         * @return
         */
        @Bean
        public Docket accessUser() {
            return new Docket(DocumentationType.SWAGGER_2).groupName("user")// 定义组
                    .select() // 选择那些路径和api会生成document
                    .apis(RequestHandlerSelectors.basePackage("com.springboot.controller")) // 拦截的包路径
                    .paths(regex("/user/.*"))// 拦截的接口路径
                    .build(); // 创建
                    //.apiInfo(apiInfo()); // 配置说明
        }
    
    }

    3 增加测试controller层

    package com.springboot.controller;
    
    import java.util.HashMap;
    import java.util.Map;
    
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.PostMapping;
    import org.springframework.web.bind.annotation.RequestBody;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import com.springboot.model.User;
    import com.springboot.util.ApiJSONUtil;
    import com.springboot.util.JsonReturn;
    
    import io.swagger.annotations.ApiOperation;
    
    @RestController
    @RequestMapping("/user")
    public class UserController {
        
        Map<String,User> maps = new HashMap<String,User>();
        
        @ApiOperation(value="添加",notes="用户添加操作")
        @PostMapping("/add")
        public String add(@RequestBody User user) throws Exception{
            maps.put(user.getUuid(), user);
            JsonReturn jsonReturn = new JsonReturn(true);
            return ApiJSONUtil.objectToJsonStr(jsonReturn);
        }
        
        
        @ApiOperation(value="删除",notes="用户添加操作")
        @PostMapping("/delete/{uuid}")
        public String add(@PathVariable String uuid)  throws Exception{
            maps.remove(uuid);
            JsonReturn jsonReturn = new JsonReturn(true);
            return ApiJSONUtil.objectToJsonStr(jsonReturn);
        }
        
        @ApiOperation(value="修改",notes="用户添加操作")
        @PostMapping("/update")
        public String delete(@RequestBody  User user)  throws Exception{
            maps.put(user.getUuid(), user);
            JsonReturn jsonReturn = new JsonReturn(true);
            jsonReturn.setObj(user);
            return ApiJSONUtil.objectToJsonStr(jsonReturn);
        }
        
        @ApiOperation(value="查询",notes="用户添加操作")
        @PostMapping("/query")
        public String query(@RequestBody  Map<String,String> map)  throws Exception{
            User user = maps.get(map.get("uuid"));
            JsonReturn jsonReturn = new JsonReturn(true);
            jsonReturn.setObj(user);
            return ApiJSONUtil.objectToJsonStr(jsonReturn);
        }
    }

    4 输入 http://localhost:8080/swagger-ui.html#/查看效果

     

      

  • 相关阅读:
    BZOJ 3132: 上帝造题的七分钟 树状数组+差分
    PAT Advanced 1006 Sign In and Sign Out (25 分)
    PAT Advanced 1011 World Cup Betting (20 分)
    PAT Basic 1032 挖掘机技术哪家强 (20 分)
    PAT Basic 1028 人口普查 (20 分)
    PAT Basic 1004 成绩排名 (20 分)
    大数据数据库HBase(二)——搭建与JavaAPI
    PAT Advanced 1009 Product of Polynomials (25 分)(vector删除元素用的是erase)
    PAT Advanced 1002 A+B for Polynomials (25 分)(隐藏条件,多项式的系数不能为0)
    PAT Basic 1041 考试座位号 (15 分)
  • 原文地址:https://www.cnblogs.com/zhangjunqing/p/7712668.html
Copyright © 2011-2022 走看看