zoukankan      html  css  js  c++  java
  • Spring Boot 集成Swagger2生成RESTful API文档

    Swagger2可以在写代码的同时生成对应的RESTful API文档,方便开发人员参考,另外Swagger2也提供了强大的页面测试功能来调试每个RESTful API。

    使用Spring Boot可以方便的集成Swagger2

    1.新建Spring Boot项目

    2.添加swagger依赖

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

    ---

    3.创建swagger配置类

    /**
     * Created by LG on 2017/8/3.
     *
     * Spring Boot中使用Swagger2构建RESTful APIs说明文档
     * 访问http://localhost:8071/swagger-ui.html 查看效果
     */
    @Configuration
    @EnableSwagger2
    public class Swagger2 {
    
        @Bean
        public Docket createRestApi() {
            return new Docket(DocumentationType.SWAGGER_2)
                    .apiInfo(apiInfo())
                    .select()
                    .apis(RequestHandlerSelectors.basePackage("com.luangeng.controller"))
                    .paths(PathSelectors.any())
                    .build();
        }
    
        private ApiInfo apiInfo() {
            return new ApiInfoBuilder()
                    .title("Spring Boot中使用Swagger2构建RESTful APIs说明文档--title")
                    .description("Spring Boot中使用Swagger2构建RESTful APIs说明文档--description")
                    .contact("Spring Boot中使用Swagger2构建RESTful APIs说明文档--contact")
                    .version("1.0.1")
                    .build();
        }
    
    }

    ---

    4.添加一个UserController.java类

    @RestController
    @RequestMapping(value="/users")
    public class UserController {
    
        private static Map<Long, User> users = Collections.synchronizedMap(new HashMap<Long, User>());
    
        @ApiOperation(value="获取用户列表", notes="获取用户列表")
        @RequestMapping(value="/", method= RequestMethod.GET)
        public List<User> getUserList() {
            List<User> r = new ArrayList<User>(users.values());
            return r;
        }
    
        @ApiOperation(value="创建用户", notes="根据User对象创建用户")
        @ApiImplicitParam(name = "user", value = "实体user", required = true, dataType = "User")
        @RequestMapping(value="/", method=RequestMethod.POST)
        public String postUser(@ModelAttribute User user) {
            users.put(user.getId(), user);
            return "success";
        }
    
        @RequestMapping(value="/{id}", method=RequestMethod.GET)
        public User getUser(@PathVariable Long id) {
            return users.get(id);
        }
    
        @RequestMapping(value="/{id}", method=RequestMethod.PUT)
        public String putUser(@PathVariable Long id, @ModelAttribute User user) {
            User u = users.get(id);
            u.setName(user.getName());
            u.setAge(user.getAge());
            users.put(id, u);
            return "success";
        }
    
        @RequestMapping(value="/{id}", method=RequestMethod.DELETE)
        public String deleteUser(@PathVariable Long id) {
            users.remove(id);
            return "success";
        }
    
    }

    ---

    再增加一个InfoController.java类

    @RestController
    public class InfoController {
    
        @Autowired
        MyConfig myconfig;
    
        @RequestMapping("/info")
        public String msg() {
            return "client1 service"+myconfig.toString();
        }
    
    }

    ---

    6.访问http://localhost:8071/swagger-ui.html 查看效果

    +

     

     

    end

  • 相关阅读:
    JQ实现选项卡(jQuery原型插件扩展)
    jQuery的实现原理和核心
    fetch 关于七牛的content-type 的问题
    npm 安装远程包(github的)
    关于dvajs里effects的call和put
    babel6 的 export default bug
    regeneratorRuntime未定义
    babel 解构赋值无法问题
    npm 安装本地包
    datable-默认参数列表
  • 原文地址:https://www.cnblogs.com/luangeng/p/6130475.html
Copyright © 2011-2022 走看看