|
|
|
@ -9,34 +9,52 @@ import springfox.documentation.spi.DocumentationType;
|
|
|
|
|
import springfox.documentation.spring.web.plugins.Docket;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 这个类 `SwaggerConfig` 是用于配置 `Swagger` 的配置类,通过 `Spring` 的配置机制(`@Configuration` 注解标识),
|
|
|
|
|
* 它定义了如何生成 `Swagger` 接口文档相关的信息以及配置 `Swagger` 的核心组件 `Docket`,使得在项目中能够方便地生成清晰、规范的接口文档,方便前后端开发人员进行接口的对接以及对项目接口的整体了解和测试等操作。
|
|
|
|
|
*
|
|
|
|
|
* @Author swg.
|
|
|
|
|
* @Date 2019/1/8 11:39
|
|
|
|
|
* @CONTACT 317758022@qq.com
|
|
|
|
|
* @DESC
|
|
|
|
|
*/
|
|
|
|
|
@Configuration
|
|
|
|
|
// `@Configuration` 注解表明这个类是一个 `Spring` 的配置类,`Spring` 容器在启动时会扫描并解析该类,将其中定义的 `Bean`(通过 `@Bean` 注解方法定义的对象)注册到容器中,
|
|
|
|
|
// 以便在项目的其他地方可以方便地注入和使用这些对象,在这里主要用于配置 `Swagger` 相关的组件和信息。
|
|
|
|
|
public class SwaggerConfig {
|
|
|
|
|
// 接口版本号
|
|
|
|
|
|
|
|
|
|
// 接口版本号,用于标识当前接口文档所对应的项目接口版本,方便使用者了解接口的迭代情况以及不同版本之间的差异,这里定义为 "3.0",数据类型为 `String`。
|
|
|
|
|
private final String version = "3.0";
|
|
|
|
|
// 接口大标题
|
|
|
|
|
// 接口大标题,通常展示在接口文档的顶部,是对整个接口文档内容的一个总体概括性标题,此处设置为 "快乐蜗牛商城V3.0文档",用于明确文档所属的项目及版本,数据类型为 `String`。
|
|
|
|
|
private final String title = "快乐蜗牛商城V3.0文档";
|
|
|
|
|
// 具体的描述
|
|
|
|
|
// 具体的描述,用于详细说明接口文档涵盖的服务内容等相关信息,在这里明确指出是 "用户服务",让查看文档的人能快速知晓该文档主要聚焦的业务范围,数据类型为 `String`。
|
|
|
|
|
private final String description = "用户服务";
|
|
|
|
|
// 服务说明url
|
|
|
|
|
// 服务说明url,一般指向一个网页地址,该地址可以提供关于整个服务更详细的说明、使用条款、服务协议等相关信息,这里设置为 "http://www.kingeid.com",数据类型为 `String`。
|
|
|
|
|
private final String termsOfServiceUrl = "http://www.kingeid.com";
|
|
|
|
|
// 接口作者联系方式
|
|
|
|
|
// 接口作者联系方式,通过 `Contact` 类的实例来封装作者的相关联系信息,包括姓名、个人主页(如 `GitHub` 主页等)以及邮箱地址,方便使用者在有问题或者需要进一步沟通时能联系到接口的作者,这里进行了相应的初始化设置。
|
|
|
|
|
private final Contact contact = new Contact("fourColor", "https://github.com/sunweiguo", "sunweiguode@gmail.com");
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 这个方法使用 `@Bean` 注解,用于创建并返回一个 `Docket` 对象,`Docket` 是 `Swagger` 框架中用于配置和定制接口文档生成的核心组件。
|
|
|
|
|
* 通过对 `Docket` 的配置,可以指定要生成文档的接口范围、添加接口相关的元信息(如标题、版本、描述等)以及其他各种定制化的设置,
|
|
|
|
|
* 最终生成符合项目需求的接口文档,返回的 `Docket` 对象会被 `Spring` 容器管理并在生成接口文档的过程中发挥关键作用。
|
|
|
|
|
*
|
|
|
|
|
* @return 返回一个配置好的 `Docket` 对象,用于后续 `Swagger` 生成接口文档的相关操作。
|
|
|
|
|
*/
|
|
|
|
|
@Bean
|
|
|
|
|
public Docket buildDocket() {
|
|
|
|
|
return new Docket(DocumentationType.SWAGGER_2).apiInfo(buildApiInf())
|
|
|
|
|
.select().build();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 这个私有方法用于构建 `ApiInfo` 对象,`ApiInfo` 是用于封装接口文档的基本信息(如标题、版本、描述、服务网址、作者联系方式等)的对象,
|
|
|
|
|
* 这些信息会展示在生成的 `Swagger` 接口文档的开头部分,让使用者能够快速了解接口文档的整体概况和关键信息,通过 `ApiInfoBuilder` 来逐步构建并返回 `ApiInfo` 对象。
|
|
|
|
|
*
|
|
|
|
|
* @return 返回一个构建好的 `ApiInfo` 对象,包含了接口文档的标题、版本、描述、服务网址以及作者联系方式等信息,用于配置 `Docket` 对象中的接口文档基本信息部分。
|
|
|
|
|
*/
|
|
|
|
|
private ApiInfo buildApiInf() {
|
|
|
|
|
return new ApiInfoBuilder().title(title).termsOfServiceUrl(termsOfServiceUrl).description(description)
|
|
|
|
|
.version(version).contact(contact).build();
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|