springboot集成SwaggerBootstrapUI

先创建springboot项目,后在pom里添加依赖swagger2和SwaggerBootstrapUI的依赖。

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

        <dependency>
        <groupId>com.github.xiaoymin</groupId>
        <artifactId>swagger-bootstrap-ui</artifactId>
        <version>1.9.1</version>
        </dependency>

新建配置类 SwaggerConfiguration
注意

package com.wuf.swagger.config;

import org.springframework.context.annotation.ComponentScan;
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;
import org.springframework.context.annotation.Bean;

//添加为自己的包名
@ComponentScan("com.wuf.swagger.controller")
@Configuration
@EnableSwagger2
public class SwaggerConfiguration {

	//在apis中添加自己的包名
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.wuf.swagger.controller"))
                .paths(PathSelectors.any())
                .build();
    }
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("swagger-bootstrap-ui RESTful APIs")
                .description("swagger-bootstrap-ui")
                .termsOfServiceUrl("http://localhost:8080/")
                .contact("wuf@citydo.com.cn")
                .version("1.0")
                .build();
    }
}

在Controller类上增加swagger配置
package com.wuf.swagger.controller;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.wuf.swagger.common.ServerResponse;
import com.wuf.swagger.pojo.User;
import com.wuf.swagger.service.UserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@Api(value = “用户管理”, description = “用户管理API”, position = 100, protocols = “http”)
@RestController
@RequestMapping("/user")
public class UserManageController {

@Autowired
private UserService userService;

@ApiOperation(value = "创建用户", notes = "根据User对象创建用户")
@ApiImplicitParams({
        @ApiImplicitParam(name = "username", value = "用户名", required = true, dataType = "String", paramType = "query"),
        @ApiImplicitParam(name = "age", value = "年龄", required = true, dataType = "Integer", paramType = "query"),
        @ApiImplicitParam(name = "email", value = "邮箱", required = false, dataType = "String", paramType = "query"),
        @ApiImplicitParam(name = "phone", value = "联系方式", required = false, dataType = "String", paramType = "query"),
        @ApiImplicitParam(name = "question", value = "邮箱", required = false, dataType = "String", paramType = "query"),
        @ApiImplicitParam(name = "answer", value = "答案", required = false, dataType = "String", paramType = "query"),
        @ApiImplicitParam(name = "role", value = "角色", required = false, dataType = "String", paramType = "query")
})
@RequestMapping(value = "/register", method = RequestMethod.POST)
@ResponseBody
public ServerResponse register(@RequestParam String username,
                               @RequestParam String password,
                               @RequestParam Integer age,
                               @RequestParam String email,
                               @RequestParam String phone,
                               @RequestParam String question,
                               @RequestParam String answer,
                               @RequestParam Integer role) {
    userService.register(username, password, age, email,phone,question,answer,role);
    return ServerResponse.success(null,"注册成功");
}

@ApiOperation("用户删除")
@RequestMapping(value = "/delete",method = RequestMethod.DELETE)
public ServerResponse delete(@RequestParam String username){
    return ServerResponse.success(null,"删除成功");
}

@ApiOperation("获取全部用户信息")
@RequestMapping(value = "/getall",method = RequestMethod.GET)
public ServerResponse<IPage<User>> getAll(@RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
                                   @RequestParam(value = "pageSize", defaultValue = "5") int pageSize){

    IPage<User> users = userService.getAll(pageNum,pageSize);
    return ServerResponse.success(users);
}

@ApiOperation(value="通过用户名获取单个用户信息")
@ApiImplicitParams({
        @ApiImplicitParam(name = "username", value = "用户名", required = true, dataType = "String", paramType = "query")
})
@RequestMapping(value = "/get_user_name",method = RequestMethod.POST)
public ServerResponse<User> getUser(@RequestParam String userName){
    User user = new User();
    user = userService.getByName(userName);
    return ServerResponse.success(user);

}

@ApiOperation(value="修改单个用户信息",notes = "修改用户信息")
@ApiImplicitParams({
        @ApiImplicitParam(name = "username", value = "用户名", required = true, dataType = "String", paramType = "query"),
        @ApiImplicitParam(name = "age", value = "年龄", required = true, dataType = "Integer", paramType = "query"),
        @ApiImplicitParam(name = "email", value = "邮箱", required = false, dataType = "String", paramType = "query"),
        @ApiImplicitParam(name = "phone", value = "联系方式", required = false, dataType = "String", paramType = "query"),
        @ApiImplicitParam(name = "question", value = "邮箱", required = false, dataType = "String", paramType = "query"),
        @ApiImplicitParam(name = "answer", value = "答案", required = false, dataType = "String", paramType = "query")
})
@RequestMapping(value = "/update",method = RequestMethod.POST)
public ServerResponse<User> updateUser(@RequestParam String username,
                                       @RequestParam Integer age,
                                       @RequestParam String email,
                                       @RequestParam String phone,
                                       @RequestParam String question,
                                       @RequestParam String answer){
    User user = new User();
    user = userService.updateUser(username,age,email,phone,question,answer);
    return ServerResponse.success(user,"修改成功");

}

}
以上配置完成之后,直接启动项目,访问地址:localhost:8080/doc.html,即可打开如下页面
在这里插入图片描述

swagger-bootstrap-ui官方文档地址

https://doc.xiaominfo.com/

swagger-bootstrap-ui注解
原文链接:https://blog.csdn.net/KingBoyWorld/article/details/104012507

  1. 注解说明
    Swagger的使用注解有很多,这里我们只讲最常用的注解,以及这些注解中最常用的属性。

@Api(tags = {“用户操作”})
加在controller类上
tags表示该类的标签,在页面会独立显示一个菜单
@ApiOperation(value = “保存用户”, notes = “保存时,ID由数据库生成,无需填写,有则忽略”, tags = “保存”)
加在相应的请求处理方法上
value表示该方法的说明
notes相当于对该方法的详细说明,也就是更加完整的描述
tags 表示标签,,在页面会独立显示一个菜单
@ApiImplicitParam(name = “id”, value = “用户ID”, defaultValue = “1”)
方法只有一个基本类型参数时加在方法上。方法有多个参数时加在@ApiImplicitParams内
name 参数中属性的名字
value 对这个属性的描述
defaultValue 默认值,这个还是有必要填写的,在页面进行请求时,会自动填充
@ApiImplicitParams(value = {})
用在请求方法上
这个注解必须和@ApiImplicitParam配合使用
当请求方法中的请求参数很多的时候,例如saveUser(String username, Integer age, Date birthday, String phone)
@ApiParam(value = “当前页”, defaultValue = “1”)
加在请求方法的普通参数上
value的值是对该参数的说明
与@ApiImplicitParam使用的效果等同,根据个人喜好进行使用
@ApiModel(value = “用户信息”)
加在请求方法的对象类上
value 对该对象参数的描述
例如有一个请求方法save(UserDTO userDTO), 则需要加在UserDTO这个类上面(可以参照下面的示例)
@ApiModelProperty(value = “用户ID”, example = “1”)
加在请求方法的参数对象的属性上
value 对该属性的描述
example 属性的示例值,在页面会自动填充该值

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值