zoukankan      html  css  js  c++  java
  • swagger

    简介

    生成在线接口文档

    SpringBoot集成Swagger

    新建一个Springboot项目

    image-20201007214331690

    添加依赖

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

    编写一个hello

    新建一个controller包下编写一个控制器

    package com.jmu.swaggertest.controller;
    
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    public class HelloController {
    
        @RequestMapping(value="/hello")
        public String Hello(){
            return "hello";
        }
    }
    

    集成Swagger

    新建一个config包,编写一个配置类

    package com.jmu.swaggertest.config;
    
    import org.springframework.context.annotation.Configuration;
    import springfox.documentation.swagger2.annotations.EnableSwagger2;
    
    @Configuration
    @EnableSwagger2 //开启swagger2
    public class MyConfig {
        
    }
    

    启动Springboot访问

    http://localhost:8080/swagger-ui.html

    因为源码中的是swagger-ui.html所以访问这个地址

    image-20201007220609312

    image-20201007215356068

    Swagger配置

    Swagger配置扫描接口

    在MyConfig中配置

    @Bean
    public Docket docket(){
        return new Docket(DocumentationType.SWAGGER_2)
                .enable(true)//是否启动swagger,正式上线关闭
                .select()
                //RequestHandlerSelectors 配置要扫描接口的方式
                //basePackage :指定要扫描的包
                .apis(RequestHandlerSelectors.basePackage("com.jmu.swaggertest.controller"))
                //过滤什么路径
                .paths(PathSelectors.ant("/hello/**"))//只扫描hello下的controller
                .build();
    }
    

    Swagger配置Models

    @RestController
    public class HelloController {
        //只要我们的接口中返回值是实体类,就会返回到Swagger中
        @PostMapping(value = "/user")
        public User user(){
            return new User();
        }
    }
    
    @ApiModel("用户实体类")
    public class User {
        @ApiModelProperty("用户名")
        private String name;
        @ApiModelProperty("用户密码") //由于是私有属性,所有要写get/set swagger那边才会显示
        private String pwd;
    
        public String getName() {
            return name;
        .....
    

    image-20201007224814826

    定义接口说明

    定义在类上:@Api
    定义在方法上:@ApiOperation
    定义在参数上:@ApiParam

    @Api(description="讲师管理")
    @RestController
    @RequestMapping("/admin/edu/teacher")
    public class TeacherAdminController {
        @Autowired
        private TeacherService teacherService;
        @ApiOperation(value = "所有讲师列表")
        @GetMapping
        public List<Teacher> list(){
            return teacherService.list(null);
        }
        @ApiOperation(value = "根据ID删除讲师")
        @DeleteMapping("{id}")
        public boolean removeById(
                @ApiParam(name = "id", value = "讲师ID", required = true)
                @PathVariable String id){
            return teacherService.removeById(id);
        }
    }
    
  • 相关阅读:
    escape
    洛谷 P2158 【仪仗队】
    GIT学习----第五节:管理修改
    前端Webpack
    20 行 JS 代码,实现复制到剪贴板功能
    mysql表分区和分表的实现方式几种以及区别,什么时候用
    微信小程序----解析px、rpx、rem、vw实现页面布局
    微信小程序----相对路径图片不显示
    微信小程序----评价系统中的评星
    微信小程序----session_key失效导致的后台错误wxsp login api aesCbcUtil error info: pad block corrupted
  • 原文地址:https://www.cnblogs.com/10134dz/p/13779715.html
Copyright © 2011-2022 走看看