spring boot整合Swagger2

spring boot整合Swagger2

首先导入依赖

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

编写配置类

一定要加一下两个注解:
@Configuration :声明该类为配置类
@EnableSwagger2 :开启Swagger2

@Slf4j
@Configuration
@EnableSwagger2
public class SwaggerConfig {

    @Bean
    public Docket createRestApi() {
        log.info("进入到swagger的配置中");
        return new Docket(DocumentationType.SWAGGER_2)
                // 指定构建api文档的详细信息的方法:apiInfo()
                .apiInfo(getApiInfo())
                .select()
                // 指定要生成api接口的包路径,这里把controller作为包路径,生成controller中的所有接口
                .apis(RequestHandlerSelectors.basePackage("要生成接口文档的controller包的路径例如:com.pn.controller"))
                //配置路径
                .paths(PathSelectors.any())
                .build();
                //忽略参数
                //.ignoredParameterTypes(HttpServletRequest.class);
    }

   public ApiInfo getApiInfo() {
       return new ApiInfoBuilder()
       			//文档标题
               .title("这是阳光书亦操作信息接口文档说明")
               //文档描述
               .description("可以实现添加投诉信息,指定查询,查询所有,修改举报信息等")
               //项目路径
               .termsOfServiceUrl("http://127.0.0.1:8080/")
               //负责人
               .license("zxy")
               //版本
               .version("1")
               .build();
   }
}

注意 :.ignoredParameterTypes()要写在build()后面不然会报错

准备实体类

/**
 * <p>
 * 用户主数据
 * </p>
 *
 * @author zxy
 * @since 2022-04-13
 */
@Data
@ApiModel(value = "用户数据")
public class User implements Serializable {

    private static final long serialVersionUID=1L;

    @ApiModelProperty(value = "用户Id")
    private Integer id;

    /**
     * 用户
     */
    @ApiModelProperty(value = "用户")
    private String UserName;

    /**
     * 用户联系方式
     */
    @ApiModelProperty(value = "用户联系方式")
    private String Phone;

}

准备controller

/**
 * <p>
 * 用户主数据 前端控制器
 * </p>
 *
 * @author zxy
 * @since 2022-04-13
 */
@RestController
@RequestMapping("/User")
@Api(tags = "用户数据记录")
public class SunshineReportController {

    @Autowired
    private UserService userService ;

    /**
     * 新增用户记录
     * @param req
     * @return
     */
    @PostMapping("/add")
    @ApiOperation(value = "添加用户",notes = "添加用户")
    public JSONObject addUser(@RequestBody User user){
        return userService.addUser(user);

    }

    /**
     * 根据id查询用户详细信息
     * @param id
     * @return
     */
    @GetMapping("/selectUserById")
    //@RequestMapping(value = "/selectById/{id}",method = GET.GET)
    @ApiOperation(value = "根据Id查询详细信息",notes = "根据Id查询详细信息")
    @ApiImplicitParams({@ApiImplicitParam(name = "id", value = "需要查询详情的用户id",required = true,dataType = "int", example = "1")})
    public JSONObject selectUserById(@RequestParam("id") Integer id){
        return UserService.getById(id);
    }

    /**
     * 用户列表
     * @param req
     * @return
     */
    @GetMapping("/list")
    @ApiOperation(value = "查询所有投诉信息(分页查询)",notes = "查询所有(默认第一页,10条),分页查询,pageSize(每页条数),pageNo(当前页)")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "pageSize", value = "每页条数", required = true,dataType = "int",example = "10",paramType = "query"),
            @ApiImplicitParam(name = "pageNo", value = "当前页", required = true,dataType = "int",example = "1",paramType = "query")})
    public JSONObject list(HttpServletRequest req ){
        System.out.println("req = " + req);
        return UserService.list(req);
    }

	@ApiResponses({
            @ApiResponse(code=200,message="删除成功"),
            @ApiResponse(code=500,message="删除失败")})
    @ApiOperation(value = "删除用户",notes = "根据id删除用户")
    @DeleteMapping("/user/delete/{id}")
    public Integer deleteUserById(@PathVariable Integer id) {
        return UserService.deleteUserById(id);
    }
}

测试

访问http://localhost:8080/swagger-ui.html即可。
在这里插入图片描述
注意上图:
req你参数的名称
小括号那里代表了你的参数的类型(这里一定要注意哦!!!)

以下是注解说明
Swagger注解说明:
@Api:用在Controller类上,说明该类的作用。
@ApiOperation:注解来给API增加方法说明。
@ApiImplicitParams : 用在方法上包含一组参数说明。
@ApiImplicitParam:用来注解来给方法入参增加说明,包含在注解@ApiImplicitParams中。
@ApiResponses:用于表示一组响应
@ApiResponse:用在@ApiResponses中,一般用于表达一个错误的响应信息
@ApiModel:描述一个Model的信息(一般用在请求参数无法使用@ApiImplicitParam注解进行描述的时候)
@ApiModelProperty:描述一个model的属性


@ApiImplicitParam 各个参数说明: 
   1. name :参数名。 
   2. value : 参数的具体意义,作用。 
   3. required : 参数是否必填。 
   4. dataType :参数的数据类型,默认StringInteger类型需要写成“int,添加参数默认值
   5. defaultValue :参数的默认值  
   6. paramType :查询参数类型,这里有几种形式:

        path 以地址的形式提交数据
        query 直接跟参数完成自动映射赋值
        body 以流的形式提交 仅支持POST
        header 参数在request headers 里边提交
        form 以form表单的形式提交 仅支持POST

注意:
2. 参数的id之类的为Integer,dataType 则需要写成Int,并且需要添加属性example(默认值);
3. 最后是关于接口接收参数为HttpServletRequest 配置参数,可以配你业务中需要的参数名称和类型,主要是查询参数类型,是你业务要使用的数据用什么方式提交。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值