手把手教你从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项目
- 打开 IntelliJ IDEA,选择 "File" -> "New" -> "Project",创建一个新的 Spring Boot 项目。
- 在项目创建向导中,选择所需的 Spring Boot 版本和依赖,然后完成项目创建。等待依赖加载完毕。
- 项目建立后的文件目录结构如下:
第二步:添加Swagger相关依赖
- 打开
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>
- 配置
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
在
com.swaggertest
下新建config
文件夹,然后新建SwaggerConfig
和WebMvcConfigurer
两个 Java 文件。配置
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());
}
}
- 配置
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
- 启动 Spring Boot 应用程序,访问
http://localhost:8080/doc.html
或http://localhost:8080/swagger-ui.html
即可查看接口文档。
第四步:使用Swagger
- 新建一个
entity
包,在此包下建立一个食物实体类Food
和foodtype
。注意实体类要遵循小驼峰命名法。
@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;
}
- 新建
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;
}
}
- 访问
http://localhost:8080/doc.html#/home
查看效果:
热门推荐
苦瓜、绿豆、冬瓜,谁才是真正的“降火王者”?
血管神经性水肿的预防秘籍:远离过敏,健康生活
工程居间费收取有红线,最高法案例明确4大合规要点
春节打卡湄洲妈祖祖庙,祈福之旅不容错过!
蘑菇种植技术及其环境适应性分析
故宫门票预约满了还会放票吗?背后真相揭秘!
银环蛇出没!教你防蛇绝招
丹东梭子蟹:三招挑选最肥美,两家必吃餐厅推荐
肾着汤治疗寒湿腰痛,千年古方获现代医学认可
神经网络助力全息重建技术突破
学校自动洗衣机清洁指南:专业工程师教你这样做
告别“万事如意”:教你写出走心又创意的新春祝福
张三丰:从崂山到武当的道教传奇
新时代中国调研行之看区域·东北篇|工业遗产再利用 城市美景展新姿
香港审计视角:股权转让后的财务报表调整指南
“天津之眼”:世界唯一跨河摩天轮与海河游船浪漫游
2型糖尿病治疗新选择:达格列净的多重获益与使用注意事项
这8种坚果,家长坚持给孩子吃,补脑益智,强身健体
欧联杯新赛制抽签揭晓,穆里尼奥抽到老东家曼联
冬季园艺必备:满天星栽培秘籍
打碎别人家的杯子?这样做能化解风水危机
石林旅游攻略
减肥也能吃得好,营养均衡才是王道!
自然景观对联创作全攻略:格律、意象与实践技巧
火候、调味、食材搭配:新手如何快速提升烹饪水平
白细胞计数偏高怎么办?4大调理方法助你改善
玉米胚芽粉:脑出血康复患者的营养助力
【社区嵌入式养老服务机构】能否成为大城养老模式的首选?
国庆长假,珠峰生态保护迎来挑战
酒泉:以“生态立市”战略引领绿色发展,打造西部生态安全屏障