Swagger之学习使用

前言

这个是为了介绍一下Swagger的使用,最近也在使用Swagger,就在下面这篇文章介绍下,我特地改了上次分享的外卖项目,添加了Swagger注解…

添加依赖

Maven项目添加依赖

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>3.0.0</version>
</dependency>

Spring Boot添加项目依赖

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-boot-starter</artifactId>
    <version>3.0.0</version>
</dependency>

Swagger 项目的配置文件

@Configuration
public class SpringFoxConfig {                                    
    @Bean
    public Docket api() { 
        return new Docket(DocumentationType.SWAGGER_2)  
          .select()                                  
          .apis(RequestHandlerSelectors.any())              
          .paths(PathSelectors.any())                          
          .build();                                           
    }
}

Spring boot项目需要添加配置项到你的Swagger配置类上***@EnableSwagger2WebMvc***

@Configuration
@EnableSwagger2WebMvc
public class SpringFoxConfig {                                    
}

如果不是Spring boot的话,就不能自动配置好请求的路径,其他项目就需要添加Swagger的静态资源的配置路径映射,这个资源映射我们需要添加

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("swagger-ui.html")
      .addResourceLocations("classpath:/META-INF/resources/");

    registry.addResourceHandler("/webjars/**")
      .addResourceLocations("classpath:/META-INF/resources/webjars/");
}

添加Swagger-UI,Swagger-UI可以帮助你查看接口文档和测试,我们需要添加一个依赖

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

我们可以通过浏览器去访问它

http://localhost:8080/your-app-root/swagger-ui/

相关注解

使用Swagger注解是服务于前后端分类开发,更加方便我们和前端进行对接,那接口文档是怎么样可以生成呢,前面我们只是搭建了接口查看的地址,那这些接口时怎么扫描进去的呢,下面我将列举一些常用到的注解出来以及怎么使用。

注解说明
@ApiModel(value =“地址信息”)这个value是对接口的描述,一般我们对将这个注解加在Controller上。
@ApiOperation(value = “新增地址”)这个注解是添加在方法上,是用于方法描述,tags是用来进行分组,produces是指定返回内容类型,consumes时指定提交处理请求的内容类型
@ApiParam(value = “地址信息”, required = true)参数说明,value是参数描述,而required是否为必填项,
@ApiModel(“菜品”)对象实体类的说明,value是实体的说明
@ApiModelProperty(“菜品id”)value类的字段说明,required表示是否为必填项,hidden是隐藏

上述就是我们比较常用的注解,通过这些注解我们可以在运行我们的项目时,通过访问路径就可以访问接口文档,这样在对前后端进行分离开发时也会更加方便,而且一般接口文档都可以支出导出多种形式,下面是我项目的接口文档接口,项目的介绍也有下面这个链接,我使用的是一个依赖,但是对请求路径映射也是需要配置的。

项目地址:

<dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>knife4j-spring-boot-starter</artifactId>
            <version>3.0.2</version>
 </dependency>

在这里插入图片描述

posted @ 2022-08-21 22:26  Leo哥coding~  阅读(8)  评论(0编辑  收藏  举报  来源