问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

手把手教你从0开始配置IDEA中的Swagger

创作时间:
作者:
@小白创作中心

手把手教你从0开始配置IDEA中的Swagger

引用
CSDN
1.
https://blog.csdn.net/jialuosi/article/details/132871295

Swagger 是一组用于设计、构建、文档化和使用 RESTful Web 服务的开源工具和框架。它允许开发团队设计、构建和测试 API,并提供易于理解的文档,以便开发人员和消费者能够快速了解和使用 API。Swagger 通常与各种编程语言和框架一起使用,以简化 API 的开发和维护过程。

第一步:用IDEA搭建一个Spring Boot项目

  1. 打开 IntelliJ IDEA,选择 "File" -> "New" -> "Project",创建一个新的 Spring Boot 项目。
  2. 在项目创建向导中,选择所需的 Spring Boot 版本和依赖,然后完成项目创建。等待依赖加载完毕。

  1. 项目建立后的文件目录结构如下:

第二步:添加Swagger相关依赖

  1. 打开 pom.xml 文件,添加以下三个依赖:
<dependency>
   <groupId>io.springfox</groupId>
   <artifactId>springfox-swagger2</artifactId>
   <version>2.7.0</version>
</dependency>
<dependency>
   <groupId>io.springfox</groupId>
   <artifactId>springfox-swagger-ui</artifactId>
   <version>2.7.0</version>
</dependency>
<dependency>
  <groupId>com.github.xiaoymin</groupId>
  <artifactId>knife4j-spring-boot-starter</artifactId>
  <version>2.0.8</version>
</dependency>
  1. 配置 application.properties 文件,主要是 JDBC 相关配置:
# 将路径替换为你的路径
spring.datasource.url=jdbc:mysql://localhost:3306/food?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false&allowMultiQueries=true
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driverClassName = com.mysql.cj.jdbc.Driver
  1. com.swaggertest 下新建 config 文件夹,然后新建 SwaggerConfigWebMvcConfigurer 两个 Java 文件。

  2. 配置 SwaggerConfig

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket docket() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
                .paths(PathSelectors.any())
                .build();
    }
    private ApiInfo apiInfo() {
        Contact contact = new Contact("加洛斯", "666", "xxxxx@qq.com");
        return new ApiInfo(
                "文档标题",
                "文档标题的描述",
                "版本1.0",
                "urn:tos",
                contact,
                "Apache 2.0",
                "http://www.apache.org/licenses/LICENSE-2.0",
                new ArrayList());
    }
}
  1. 配置 WebMvcConfigurer
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;

@Configuration
public class WebMvcConfigurer extends WebMvcConfigurationSupport {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/**").addResourceLocations("classpath:/static/");
        registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
    }
}

第三步:启动SpringBoot

  1. 启动 Spring Boot 应用程序,访问 http://localhost:8080/doc.htmlhttp://localhost:8080/swagger-ui.html 即可查看接口文档。

第四步:使用Swagger

  1. 新建一个 entity 包,在此包下建立一个食物实体类 Foodfoodtype。注意实体类要遵循小驼峰命名法。
@Data
@ApiModel(value = "食物类Model")
public class Food {
    @ApiModelProperty(value = "食物ID")
    private String foodId;
    @ApiModelProperty(value = "食物名称")
    private String foodName;
    @ApiModelProperty(value = "食物种类ID")
    private String foodTypeId;
    @ApiModelProperty(value = "食物种类名")
    private String foodTypeName;
    public Food(String foodId, String foodName, String foodTypeId, String foodTypeName) {
        this.foodId = foodId;
        this.foodName = foodName;
        this.foodTypeId = foodTypeId;
        this.foodTypeName = foodTypeName;
    }
}
@Data
@ApiModel(value = "食物种类Model")
public class FoodType {
    @ApiModelProperty(value = "食物种类ID")
    private String foodTypeId;
    @ApiModelProperty(value = "食物种类名")
    private String foodTypeName;
    @ApiModelProperty(value = "食物种类所属列表")
    private List<Food> foodLists;
}
  1. 新建 Controller 包下的 foodcontroller,配置相关注解。
@RestController
@Api(value = "食物Controller", tags = { "获取食物相关接口" })
@RequestMapping(value = "/food")
public class FoodController {
    @ApiOperation(value = "获取食物种类类")
    @GetMapping("/getFoodtype")
    public FoodType test2() throws Exception {
        return null;
    }
    @ApiOperation(value = "获取食物类")
    @GetMapping("/getFood")
    public List<Food> test1() throws Exception {
        Food food = new Food("1", "锅包肉","1", "肉类");
        List<Food> foodList = new ArrayList<>();
        foodList.add(food);
        return foodList;
    }
}
  1. 访问 http://localhost:8080/doc.html#/home 查看效果:

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号