swagger的使用

简介: (1)@Api:用在类上,例如Controller,表示对类的说明(2)@ApiModel:用在类上,通常是实体类,表示一个返回响应数据的信息(3)@ApiModelProperty:用在属性上,描述响应类的属性(4)@ApiOperation:用在请求方法上,说明方法的用途、作用(5)@ApiImplicitParams:用在请求的方法上,表示一组参数的说明(6)@ApiImplicitParam:用在@ApiImplicitParams注解中,指定一个请求参数的各个方面

swagger的使用



文章目录

1.认识Swagger

2.swagger的使用

2.1 方式1

2.2 方式二(使用knife4j)

3.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即可使用


8374f20eaa124e99a1eb76f5aa6484e2.png


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:可以作用在接口方法上面,以及接口方法中的参数位置的注解,其主要是用来给接口中的参数


定义相关参数说明,主要是为了帮助相关人员理解接口中每个参数的含义。


f29e74489ed343d98d96e03849b276ea.png


目录
相关文章
|
前端开发 Java API
|
6月前
|
JSON 数据库 数据格式
Swagger 中 allOf 的使用技巧
Swagger 提供了一个名为 allOf 的特性,它是通过扩展已有的数据模型来构造更为复杂的数据结构的有效手段。这一特性主要用于数据模型的继承及属性的组合,有效减少了代码重复,同时增强了代码的可维护性与清晰度。访问 Swagger 官方网站可以获得更多关于Swagger的详细信息。
|
6月前
|
Java API 开发者
Bladex生成Swagger的方法
Bladex生成Swagger的方法
|
JSON 前端开发 JavaScript
认识并了解Swagger
认识并了解Swagger
109 0
|
6月前
|
JSON 前端开发 Java
Swagger介绍及使用
Swagger介绍及使用
112 2
|
6月前
|
存储 API Go
Hertz 整合swagger
Hertz 整合swagger
90 0
|
前端开发 数据可视化 Java
从零学习Swagger3.0
从零学习Swagger3.0
164 0
|
前端开发 Java API
Swagger详解
Swagger详解
145 0
|
数据可视化 物联网 API
Swagger 学习笔记
Swagger 学习笔记
|
Java API Spring