快速搭建Swagger(knife4j版)

2023-12-30 21:26:49

0.Swagger的常用注解

1.@Api:用于标注Controller类,表示该类是Swagger资源。

2.@ApiOperation:用于标注Controller类的方法,表示该方法是一个ApiOperation,即API的一个操作。该注解包含以下属性:

? ? ? ? ①value:ApiOperation的简要说明。
? ? ? ? ②notes:ApiOperation的详细说明。
? ? ? ? ③tags:指定API所属的标签,可以在Swagger UI中进行分类展示。
? ? ? ??④response:设置API的响应类型,可以使用Java类或者Swagger定义的ResponseMessage类。
3.@ApiParam:用于标注Controller类的方法参数,表示该参数是一个API参数。该注解包含以下属性:
? ? ? ? ①value:API参数的简要说明。
? ? ? ? ②required:指定该参数是否必须。
? ? ? ? ③defaultValue:指定该参数的默认值。
4.@ApiModelProperty:用于标注Java类的属性,表示该属性是一个API参数或者响应参数。该注解包含以下属性:
? ? ? ? ①value:API参数或者响应参数的简要说明。
? ? ? ? ②required:指定该参数是否必须。
? ? ? ? ③example:指定该参数的示例值。
5.@ApiModel:用于标注Java类,表示该类是一个Swagger模型。该注解包含以下属性:
? ? ? ? ①value:模型的名称。
? ? ? ? ②description:模型的描述信息。
6.@ApiImplicitParam:用于标注Controller类的方法,表示API的隐式参数。该注解包含以下属性:
? ? ? ? ①name:参数名称。
? ? ? ? ②value:参数说明。
? ? ? ? ③dataType:参数类型。
? ? ? ? ④paramType:参数传递方式(query、header、path、cookie)。
7.@ApiImplicitParams:用于标注Controller类的方法,可以标注多个@ApiImplicitParam注解,表示API的多个隐式参数。

1.pom文件中加入依赖

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

注意:版本依赖根据SpringBoot版本而变(我使用的版本是“2.3.12.RELEASE”)

2.添加Swagger配置类

package com.example.swagger.config;

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.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/**
 * @author zh
 */
@Configuration
@EnableSwagger2
public class SwaggerConfig {

    @Bean
    public Docket apiDocket() {
        return new Docket(DocumentationType.SWAGGER_2)
            .apiInfo(apiInfo())
            .select()
            .apis(RequestHandlerSelectors.basePackage("com.example.swagger.controller")) // 指定API的扫描路径
            .paths(PathSelectors.any())
            .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
            .title("练习项目")
            .description("练习项目")
            .version("1.0.0")
            .build();
    }
}

3.启动类上添加注解“@EnableKnife4j”

package com.example.swagger;

import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * @author lenovo
 */
@SpringBootApplication
@EnableKnife4j
public class RedisDemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(RedisDemoApplication.class, args);
    }

}

4.Controller代码

package com.example.swagger.controller;

import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author lenovo
 */
@RestController
@RequestMapping("/swagger")
@Api("swagger练习")
public class SwaggerController {


    @GetMapping("/test1")
    public Object test1() {

        return null;
    }

    @GetMapping("/test2")
    public Object test2() {

        return null;
    }


    @GetMapping("/test3")
    public Object test3() {

        return null;
    }
}

5.启动项目,访问即可

http://+IP地址+端口+/doc.html#/

以上就是所有swagger的配置,希望对你有所帮助,感谢观看!

文章来源:https://blog.csdn.net/weixin_50670076/article/details/135261975
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。