杂七杂八之Swagger环境搭建(Java版本)

杂七杂八之Swagger环境搭建(Java版本)

在现代Web开发中,API文档的生成和维护是一个非常重要的环节。Swagger是一个强大的工具,它能够帮助开发者自动生成RESTful API的文档,并提供了一个用户友好的界面来测试这些API。本文将详细介绍如何在Java项目中搭建Swagger环境,包括所需的依赖、配置步骤以及如何使用Swagger UI来查看和测试API。

环境准备

在开始之前,确保你的开发环境中已经安装了以下软件:

● Java Development Kit (JDK) 1.8 或更高版本

● Maven 3.6.1(自己的应用环境)

● 一个支持Java的IDE,如 IntelliJ IDEA 或 Eclipse,本人使用IDEA

添加Swagger依赖

Maven项目

如果你的项目是基于Maven的,可以在pom.xml文件中添加以下依赖:

xml 复制代码
<dependency>
       <groupId>io.springfox</groupId>
       <artifactId>springfox-swagger2</artifactId>
       <version>2.9.2</version>
</dependency>
<dependency>
       <groupId>io.springfox</groupId>
       <artifactId>springfox-swagger-ui</artifactId>
       <version>2.9.2</version>
</dependency>

Gradle项目

如果你的项目是基于Gradle的,可以在build.gradle文件中添加以下依赖:

groovy 复制代码
dependencies {
    implementation 'io.springfox:springfox-swagger2:2.9.2'
    implementation 'io.springfox:springfox-swagger-ui:2.9.2'
}

配置Swagger

创建Swagger配置类

在你的Spring Boot项目中,创建一个新的配置类来启用Swagger。例如,可以创建一个名为SwaggerConfig.java的类:

java 复制代码
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/**
 * @author Sam Zhang
 * @date 2024-11-06 09:45:45
 * @since 0.0.1
 * 注释:swagger接口注释
 */

@EnableSwagger2
@Configuration
//是否开启swagger,正式环境一般是需要关闭的(避免不必要的漏洞暴露!),可根据springboot的多环境配置进行设置
public class Swagger2Config implements WebMvcConfigurer {
    // swagger2的配置文件,这里可以配置swagger2的一些基本的内容,比如扫描的包等等
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                // 为当前包路径
                .apis(RequestHandlerSelectors.basePackage("com.demo.llmanalysis"))
                .paths(PathSelectors.any())
                .build();
    }
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/**")
                .addResourceLocations("classpath:/static/");
        registry.addResourceHandler("swagger-ui.html")
                .addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/");
    }
    // 构建 api文档的详细信息函数,注意这里的注解引用的是哪个
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                // 页面标题
                .title("JMeter日志错误日志大模型分析服务")
                // 创建人信息
                .contact(new Contact("Sam Zhang",  "https://blog.csdn.net/u012151594?type=blog",  "Sam_Zhang@XXXXXX.com"))
                // 版本号
                .version("1.0")
                // 描述
                .description("LLMAnalysis API 描述")
                .build();
    }
}

在这个配置中,RequestHandlerSelectors.basePackage指定了需要扫描的控制器包,PathSelectors.any()表示所有路径都会被包含在文档中。

启用Swagger UI

Swagger UI是一个用于查看和测试API的前端界面。在上述配置中,通过添加springfox-swagger-ui依赖,Swagger UI已经被自动集成到项目中。启动应用后,可以通过访问http://localhost:8080/swagger-ui.html来

测试Swagger

启动你的Spring Boot应用,然后在浏览器中访问http://localhost:8080/swagger-ui.html。你应该能够看到Swagger UI界面,其中列出了所有可用的API端点。你可以点击每个端点来查看详细的请求和响应信息,并直接在界面上测试API。

总结

通过上述步骤,你已经成功地在Java项目中集成了Swagger。Swagger不仅能够帮助你自动生成API文档,还能提供一个强大的测试工具,极大地提高了开发效率和API的可维护性。希望本文对你有所帮助,祝你在API开发的道路上越走越远!

相关推荐
丘山一郎8 小时前
Spring 中的IOC控制反转 和DI依赖注入
java·后端·spring
码视野8 小时前
基于 Spring Boot + Vue3 的【大学英语四六级 (CET-4/6) 作文智能评分与句式润色系统】设计与实现(含PRD/三端高保真源码/大屏)
java·前端·人工智能·spring boot·后端·vue3
MetaLite8 小时前
Spring-AOP自调用为什么失效-AopContext真能解决吗
java·后端·spring
大模型码小白8 小时前
AI 对话流性能调优:万级消息的虚拟滚动落地
java·大数据·前端·javascript·人工智能·算法·机器学习
m0_547486668 小时前
《JavaScript核心原理 》全套PPT课件2026
开发语言·javascript·ecmascript
许彰午8 小时前
14-字段级SM4加密与SM2签名
java·低代码·架构
MC皮蛋侠客9 小时前
Tauri 2.x 系列(五):调用系统 API——官方插件、Rust crate 与原生能力
开发语言·后端·rust
布莱克6059 小时前
软中断和硬中断的区别
开发语言·操作系统
whcyhhh10 小时前
头歌实践教学平台:数据科学与大数据技术导论(十二)
大数据·开发语言·python·数据清洗
许彰午10 小时前
13-describe元数据输出
java·低代码·架构·状态模式