Swagger集成springBoot

Swagger是一个开源的API文档工具,可以自动生成API文档,并提供在线调试功能。在Spring Boot中集成Swagger,可以方便地生成和查看API文档。以下是实现步骤:

  1. 添加Swagger依赖

pom.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>

2.配置Swagger

在 Spring Boot 中配置Swagger需要创建一个名为SwaggerConfig的类,并使用@EnableSwagger2注解启用Swagger。

@Configuration
@EnableSwagger2
public class SwaggerConfig {

    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.example.demo.controller"))
                .paths(PathSelectors.any())
                .build();
    }

}

这里通过basePackage()方法设置扫描的控制器包路径,通过PathSelectors.any()来指定任何路径都会被包含在API文档中。

3.访问Swagger UI

在项目启动后,访问http://localhost:8080/swagger-ui.html即可打开Swagger UI界面,显示API文档。

注意:如果你没有修改端口号,可以直接访问http://localhost:8080/swagger-ui.html

4.配置API文档信息

Swagger UI界面上会显示API文档的基本信息,例如标题、描述和版本等。我们可以通过以下方式来配置这些信息:

@Configuration
@EnableSwagger2
public class SwaggerConfig {

    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.example.demo.controller"))
                .paths(PathSelectors.any())
                .build()
                .apiInfo(apiInfo());
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("Spring Boot Demo API")
                .description("This is a demo API for Spring Boot.")
                .version("1.0.0")
                .build();
    }

}

apiInfo()方法中设置API文档的标题、描述和版本号等信息,这些信息将会在Swagger UI界面上显示。

5.添加Swagger注解

在控制器类和方法上添加Swagger注解可以更加详细地描述API接口,例如请求参数和响应格式等。以下是一些常用的Swagger注解:

  • @Api:用于描述API接口。
  • @ApiOperation:用于描述API接口中某个具体方法的信息。
  • @ApiParam:用于描述方法中的请求参数。
  • @ApiResponse:用于描述方法的响应结果。
  • @ApiModel:用于描述返回结果对象的信息。
  • @ApiModelProperty:用于描述返回结果对象中的属性信息。
@RestController
@RequestMapping("/api")
@Api(tags = "用户管理相关接口")
public class UserController {

    @GetMapping("/{id}")
    @ApiOperation("获取用户信息")
    @ApiImplicitParam(name = "id", value = "用户ID", required = true)
    @ApiResponse(code = 200, message = "操作成功", response = User.class)
    public User getUser(@PathVariable Long id) {
        return userService.getUserById(id);
    }

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值