swagger的使用

1.认识Swagger

(1)Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。
(2)作用:
① 接口的文档在线自动生成。
② 功能测试。

2.swagger的使用

2.1 方式1

创建swagger一般都是为了所有模块都能使用,可以单独创建一个模块,在启动类上添加注解
@ComponentScan(basePackages = {“//可以扫描的包”})

(1)导入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>

②创建配置类。
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket webApiConfig(){
return new Docket(DocumentationType.SWAGGER_2)
.groupName(“webApi”)
.apiInfo(webApiInfo())
.select()
.paths(Predicates.not(PathSelectors.regex(“/admin/.“)))
.paths(Predicates.not(PathSelectors.regex(”/error.
”)))
.build();
}
/**
* 创建该API的基本信息(这些基本信息会展现在文档页面中)
* 访问地址:http://项目实际地址/swagger-ui.html
* @return
*/
private ApiInfo webApiInfo(){
return new ApiInfoBuilder()
.title(“网站-课程中心API文档”)
.description(“本文档描述了课程中心微服务接口定义”)
.version(“1.0”)
.contact(new Contact(“Helen”, “http://www.baidu.com”, “123@qq.com”))
.build();
}
}
③输入http://ip地址:端口号/swagger-ui.html即可使用
在这里插入图片描述

2.2 方式二(使用knife4j)

knife4j是为java MVC框架集成Swagger生成Api文档的增强解决方案
(1)导入knife4j的maven坐标

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

(2)导入knife4j相关配置类
(3)设置静态资源,否则接口文档页面无法访问

@Slf4j
@Configuration
@EnableSwagger2
@EnableKnife4j
public class WebMvcConfig extends WebMvcConfigurationSupport {
  // 设置静态资源映射 
    @Override
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        log.info("开始进行静态资源映射...");
        registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
      }
    @Bean
    public Docket createRestApi() {
        // 文档类型
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.itheima.reggie.controller"))//需要扫描的Controller包路径
                .paths(PathSelectors.any())
                .build(); }
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("瑞吉外卖")
                .version("1.0")
                .description("瑞吉外卖接口文档")
                .build();
    } }

(4)在LoginCheckFilter中设置不需要处理的请求路径

 //定义不需要处理的请求路径
        String[] urls = new String[]{
       			"/doc.html",
                "/webjars/**",
                "/swagger-resources",
                "/v2/api-docs"
        };
   

(5)输入http://ip地址:端口号/doc.html即可访问

3.Swagger的常用注解

(1)@Api:用在类上,例如Controller,表示对类的说明
(2)@ApiModel:用在类上,通常是实体类,表示一个返回响应数据的信息
(3)@ApiModelProperty:用在属性上,描述响应类的属性
(4)@ApiOperation:用在请求方法上,说明方法的用途、作用
(5)@ApiImplicitParams:用在请求的方法上,表示一组参数的说明
(6)@ApiImplicitParam:用在@ApiImplicitParams注解中,指定一个请求参数的各个方面
(7)@ApiParam:可以作用在接口方法上面,以及接口方法中的参数位置的注解,其主要是用来给接口中的参数
定义相关参数说明,主要是为了帮助相关人员理解接口中每个参数的含义。

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值