Swagger工具

一、Swagger介绍:

        Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务 ( https://swagger.io/ )
        它的主要作用是:
        1. 使得前后端分离开发更加方便,有利于团队协作
        2. 接口的文档在线自动生成,降低后端开发人员编写接口文档的负担
        3. 功能测试
        Spring已经将 Swagger 纳入自身的标准,建立了 Spring-swagger 项目,现在叫 Springfox 。通过在 项目中引入Springfox ,即可非常简单快捷的使用 Swagger
        注意:开发项目时候开启,上线后要关闭。

二、使用Swagger

        1、引入依赖:
<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>
        2、配置swagger的启动开关(谁使用谁配置):
# 开启swagger 
swagger.enable=true

        3、书写配置类:

@Configuration
@ConditionalOnProperty(prefix = "swagger",value = {"enable"},havingValue = "true")
@EnableSwagger2  //开启swagger注解支持
public class SwaggerConfiguration {

	@Bean
	public Docket buildDocket() {
		return new Docket(DocumentationType.SWAGGER_2)
				.apiInfo(buildApiInfo())
				.select()
				// 要扫描的API(Controller)基础包
				.apis(RequestHandlerSelectors.basePackage("xx.xx.xx"))
				.paths(PathSelectors.any())
				.build();
	}

	private ApiInfo buildApiInfo() {
		Contact contact = new Contact("文本内容","","");
		return new ApiInfoBuilder()
				.title("标题-用户服务API文档")
				.description("包含用户服务api")
				.contact(contact)
				.version("1.0.0").build();
	}
}

三、Swagger常用注解:

        在Java 类中添加 Swagger 的注解即可生成 Swagger 接口文档,常用 Swagger 注解如下:
1、作用于类上。
@Api:修饰整个类,描述 Controller 的作用
@ApiOperation :描述一个类的一个方法,或者说一个接 口
@ApiParam :单个参数的描述信息
@ApiModel :用对象来接收参数
@ApiModelProperty :用对象接收参数时,描述对象的一个字段
@ApiResponse HTTP 响应其中 1 个描述
@ApiResponses HTTP 响应整体描述
@ApiIgnore :使用该注解忽略这个 API
@ApiError :发生错误返回的信息
@ApiImplicitParam :一个请求参数
@ApiImplicitParams :多个请求参数的描述信息
2、作用于方法上
@ApiImplicitParam 属性:
3、测试代码
@RestController
@Api(value = "用户服务的Controller", tags = "Consumer", description = "用户服务API")
    public class ConsumerController {

        @ApiOperation("测试hello")
        @GetMapping(path = "/hello")
        public String hello(){
            return "hello";
        }

        @ApiOperation("测试hi")
        @ApiImplicitParam(name="name",value="姓名",required = true,dataType = "String")
        @PostMapping(value = "/hi")
        public String hi(String name){
            return "hi,"+name;
        }

}
4、Swagger生成文档:
启动 xxx 服务工程,用浏览器访问: http://localhost:53010/xxx /swagger-ui.html

四、Swagger生成API文档的工作原理:

1 xxx工程 启动时会扫描到 SwaggerConfifiguration 类。
2 、在此类中指定了扫描包路径 xx.xx.xx ,会找到在此包下及子包下标记有@RestController注解的 controller 类。
3 、根据 controller 类中的 Swagger 注解生成 API 文档。
### 如何使用 Swagger 工具生成 API 文档 Swagger 是一种强大的工具,可以用来生成、描述和调用 RESTful 风格的 Web 服务。它不仅简化了开发过程中的文档管理,还使得前端开发者更容易理解后端接口的设计[^3]。 #### 创建并启用 Swagger 配置类 为了在项目中集成 Swagger 并生成 API 文档,首先需要创建一个配置类。该类通常被标记为 `@Configuration` 和 `@EnableSwagger2` 注解,以便启动 Swagger 功能。下面是一个典型的配置类示例: ```java import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.service.ApiInfo; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; @Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket docket() { return new Docket(DocumentationType.SWAGGER_2) .enable(true) // 是否开启 swagger 支持 .apiInfo(apiInfo()) .select() .apis(requestHandlerSelectors()) // 定义扫描包路径或者特定注解 .paths(pathSelectors()) // 过滤指定路径下的接口 .build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("API 文档标题") // 设置文档标题 .description("API 描述信息") // 添加描述 .version("1.0") // 版本号 .build(); } private RequestHandlerSelectors requestHandlerSelectors() { return RequestHandlerSelectors.basePackage("com.example.controller"); // 扫描 controller 包路径 } private PathSelectors pathSelectors() { return PathSelectors.any(); // 不过滤任何路径 } } ``` 上述代码片段展示了如何定义一个基本的 Swagger 配置类,并设置其核心属性,例如是否启用 Swagger、API 的基本信息以及要扫描的控制器路径等[^2]。 #### 使用注解增强 API 文档细节 除了基础配置外,还可以利用 Swagger 提供的各种注解进一步完善 API 文档的内容。这些注解可以帮助更清晰地表达接口的功能、请求参数的意义及其数据结构。例如,在 Controller 类上添加 `@Api` 注解,在方法上添加 `@ApiOperation` 或者字段上添加 `@ApiModelProperty` 等都可以显著提升文档的质量[^1]。 #### 访问生成的 API 文档界面 完成以上步骤后,只需运行应用程序并通过浏览器访问 `/swagger-ui.html` 路径即可查看自动生成的交互式 API 文档页面。此页面提供了直观的操作指南,支持在线测试各个接口功能[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值