Swagger使用导入配置

Swagger

  • 了解Swagger的概念及作用

  • 了解前后端分离

  • 在springboot中集成swagger

  • Restful Api 文档在线自动生成器 => API 文档 与API 定义同步更新

  • 直接运行,在线测试API

  • 支持多种语言 (如:Java,PHP等)

  • 官网:https://swagger.io/

SpringBoot集成Swagger

SpringBoot集成Swagger => springfox,两个jar包

1 SpringBoot集成Swagger

  • 新建一个SpringBoot + Web项目

  • 导入相关依赖

    <!--swagger 相关依赖-->
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger2</artifactId>
                <version>3.0.0</version>
            </dependency>
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger-ui</artifactId>
                <version>3.0.0</version>
            </dependency>
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-boot-starter</artifactId>
                <version>3.0.0</version>
            </dependency>
    
  • 编写一个工程

  • 配置Swagger==》config

    @Configuration
    @EnableOpenApi //开启swagger2
    public class SwaggerConfig {
    
    }
    
  • 测试运行

    地址:Swagger UI

  • 配置Swagger

    Swagger的bean实例Docket;

    //配置Swagger的Docket的bean实例
        //enable(false)是否启动Swagger,如果为false,则不能在浏览器中访问
        @Bean
        public Docket docket(){
            return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).enable(true)
                    .select()
                    //RequestHandlerSelectors,配置要扫描接口的方式
                    //basePackage:指定要扫描的包
                    //any():扫描全部包
                    //none 都不扫描
                    //withClassAnnotation:扫描类上的方法
                    //withMethodAnnotation:扫描方法上的注解
                    .apis(RequestHandlerSelectors.basePackage("com.smile.controller"))
                   // .paths(PathSelectors.ant(("/smile/**")))    //过滤扫描路径
                    .build();
        }
    
  • 通过不同环境开启swagger

    //设置要显示的Swagger环境
        Profiles profiles = Profiles.of("dev");
        //通过enviroment.acceptsProfiles判断是否处在自己设定的环境中
        boolean flag = environment.acceptsProfiles(profiles); //通过此处判断
    
    
    
        return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).enable(flag)
                .select()
                //RequestHandlerSelectors,配置要扫描接口的方式
                //basePackage:指定要扫描的包
                //any():扫描全部包
                //none 都不扫描
                //withClassAnnotation:扫描类上的方法
                //withMethodAnnotation:扫描方法上的注解
                .apis(RequestHandlerSelectors.basePackage("com.smile.controller"))
               // .paths(PathSelectors.ant(("/smile/**")))    //过滤扫描路径
                .build();
    }
    

2 分组及接口注释小结

.groupName("贾富荣")

如何配置多个分组:多个Docket实例即可

@Bean
public Docket docket1(){
    return new Docket(DocumentationType.SWAGGER_2).groupName("A");
}
@Bean
public Docket docket2(){
    return new Docket(DocumentationType.SWAGGER_2).groupName("B");
}
@Bean
public Docket docket3(){
    return new Docket(DocumentationType.SWAGGER_2).groupName("C");
}

给生成的文档加注释:

@ApiModel("用户实体类")
public class User {
    @ApiModelProperty("用户名")
    private String username;
    @ApiModelProperty("密码")
    private String password;

部分:

package com.smile.controller;

import com.smile.pojo.User;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
//ApiOperation接口
@ApiOperation("Hello控制类接口注释")
@RestController
public class HelloController {

    //ApiOperation接口,不是放在类上的,是方法
    @ApiOperation("hello控制类")
    @GetMapping("/hello")
    public String hello(){
        return "hello";
    }

    //只要我们的接口中,返回值中存在实体类,他就会被扫描到Swagger中
    @PostMapping("/user")
    public User user(){
        return new User("贾富荣","111111");
    }

    @ApiOperation("Post测试")
    @PostMapping("/postt")
    public User postt(@ApiParam("用户名:")User user){
        return user;
    }
}

项目使用搭建代码:

Swagger2

​ Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化RESTFUL风格的Web服务

  1. 生成在线接口文档
  2. 方便接口测试
1.导入swaager依赖
<!--swagger-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <scope>provided </scope>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <scope>provided </scope>
        </dependency>
2.创建配置类
package com.smile.servicebase;

import com.google.common.base.Predicates;
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;

/**
 * @author jia
 * @date 2022/8/14
 * @description swagger配置文件
 */

@Configuration
@EnableSwagger2 //swagger注解
public class SwaggerConfig {
    /**
     * swagger插件
     * @return
     */
    @Bean
    public Docket webApiConfig(){
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("webApi")  //随意命名
                .apiInfo(webApiInfo())
                .select()
                //如果包含admin和error就不先显示
                .paths(Predicates.not(PathSelectors.regex("/admin/.*")))
                .paths(Predicates.not(PathSelectors.regex("/error.*")))
                .build();
    }
    //文档信息设置
    private ApiInfo webApiInfo(){
        return new ApiInfoBuilder()
                .title("网站-课程中心API文档")
                .description("本文档描述了课程中心微服务接口定义")
                .version("1.0")
                .contact(new Contact("Helen", "http://atguigu.com",
                        "2413249299@qq.com"))
                .build();
    }
}
3.在主启动类中添加注解,设置包扫描规则
 *   注意在common中,如果在其他地方使用会涉及没启用可能,需要使用@ComponentScan(basePackages = {"com.smile"})
 *
 */

@SpringBootApplication
@ComponentScan(basePackages = {"com.smile"})  //会扫描所有这个路径下的类,包含父类中的这个路径
public class EduApplication {
    public static void main(String[] args) {
        SpringApplication.run(EduApplication.class,args);
    }
}
4.访问swagger
http://localhost:8001/swagger-ui.html
5.Controller层代码
@Api(description = "讲师管理")  //controller提示信息
@RestController
@RequestMapping("/eduservice/edu-teacher")
public class EduTeacherController {

    @Autowired
    private EduTeacherService eduTeacherService;

    //查询讲师表中的所有数据 restful风格
    @ApiOperation(value = "所有讲师列表") //单个接口提示信息
    @GetMapping("findAll")
    public List<EduTeacher> findAllTeacher(){
        //调用service方法,实现查询所有的操作
        List<EduTeacher> list = eduTeacherService.list(null);
        return list;
    }

    //逻辑删除讲师的方法
    @ApiOperation(value = "逻辑删除讲师")
    @DeleteMapping("{id}")  //id需要通过路径进行传递 so 下面的参数值   delete不能使用浏览器直接进行测试,swagger测试
    //参数值信息@ApiParam(value = "讲师ID",name = "id",required = true)
    public boolean removeTeacher(@ApiParam(value = "讲师ID",name = "id",required = true)@PathVariable String id){
        boolean flag = eduTeacherService.removeById(id);
        return flag;
    }

}
6.结果

在这里插入图片描述

Swagger 1.5.20 导入是指将 Swagger 1.5.20 版本的工具导入到项目中使用Swagger 是一种用于构建、文档化和使用 RESTful API 的开源工具。下面是一种常见的导入步骤: 1. 下载 Swagger 1.5.20 版本的 jar 包。你可以在 Swagger 的官方网站或者其他可靠的资源网站上找到该版本的下载链接。下载完成后,将 jar 包保存到项目合适的位置。 2. 将 jar 包添加到项目的依赖中。具体的添加方式取决于项目使用的构建工具。如果是 Maven 项目,你可以在项目的 pom.xml 文件中添加以下依赖项: ``` <dependency> <groupId>io.swagger</groupId> <artifactId>swagger-core</artifactId> <version>1.5.20</version> </dependency> ``` 3. 配置 Swagger。在项目的配置文件中,根据你的需求配置 Swagger 的参数。例如,你可以指定 API 文档的标题、描述、版本等信息。你还可以配置 Swagger 显示 API 文档的路径,以及是否在 Swagger UI 中显示默认的 API 文档。 4. 在代码中使用 Swagger 注解。为了生成 API 文档,你需要在你的代码中使用 Swagger 提供的注解。例如,你可以使用 `@Api` 注解来定义一个控制器的基本信息,使用 `@ApiOperation` 注解来定义一个具体的 API 操作。 5. 启动项目并访问 Swagger UI。当项目启动后,你可以通过访问指定的 Swagger UI URL,来查看生成的 API 文档。Swagger UI 提供了一个直观的界面,用于显示 API 文档的信息和操作。 总的来说,导入 Swagger 1.5.20 版本就是下载相应的 jar 包,添加到项目的依赖中,然后在配置文件和代码中使用相应的注解来生成和展示 API 文档。这样可以帮助开发者更好地了解、测试和使用项目中的 RESTful API。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值