SpringBoot中使用Swagger

SpringBoot中使用Swagger

第一步:加入相关依赖

<dependency>
    <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>2.9.2</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
    <version>2.9.2</version>
</dependency>

第二步:编写使用swagger注解

package com.controller;


import com.entity.User;
import io.swagger.annotations.*;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

// 说明该类的作用
@Api("springboot 使用swagger测试")
@RestController
public class testController {

    // 说明方法的作用
    @ApiOperation(value = "获取用户信息", notes = "根据id来获取用户详细信息")
    // 说明请求的参数的详情
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "path", name="id", value = "用户id", dataType = "String"),
            @ApiImplicitParam(paramType = "path", name="status", value = "用户状态", dataType = "Integer")
    })
    // 说明响应信息
    @ApiResponses({
            @ApiResponse(code = 200, message = "获取信息成功"),
            @ApiResponse(code = 400, message = "缺少必要的请求参数")
    })
    @RequestMapping(value = "/swagger/{id}/{status}", method = RequestMethod.GET)
    public User hello(@PathVariable("id") String id,
                      @PathVariable("status") Integer status){
        User user = new User(id, "codekiang");
        return user;
    }
}

第三步:编写swagger配置类,配置api的基本信息

package com.conf;


import io.swagger.annotations.Api;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@EnableSwagger2 // 开启swagger2的支持
@Configuration
public class SwaggerConfig {

    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                // apis指定哪些地方要生成api文档,可以指定包、注解所在的类、注解所在的方法
                .apis(RequestHandlerSelectors.withClassAnnotation(Api.class))
                .paths(PathSelectors.any())
                .build();
    }

    /**
     * 创建api的基本信息
     * @return
     */
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("springboot利用swagger构建api文档")
                .description("简单优雅的restfun风格")
                .version("1.0")
                .build();
    }
}

第四步:访问swagger.ui,地址为:服务器Ip + 服务器端口 + /swagger-ui.html。本人测试访问的地址为 localhost:8443/swagger-ui.html
在这里插入图片描述


Swagger中常用注解的解释:

注解作用
@Api说明该类的作用
@ApiOperation说明该方法的作用
@ApiImplicitParams用在方法上,说明一组参数的详细信息。它是一个数组
@ApiImplicitParam用在@ApiImplicitParams中,详细说明参数信息。
paramType:说明参数在那个地方。
header表示参数使用@RequestHeader接收
query表示参数使用@RequestParam接收
body表示参数使用@RequestBody接收
name:参数名
dataType:参数类型
value:参数的意思
required:是否必传
defaultValue:参数的默认值
@ApiResponses用在方法上,表示一组响应
@ApiResponse用在@ApiResponses中,一般用于表达一个错误的响应信息
code:整数型,例如400
message:code对应的信息
@ApiModel描述一个model的信息
@ApiModelProperty描述一个model的属性
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值