SpringBoot中用Swagger实现接口文档实例

SpringBoot中用Swagger实现接口文档实例

实例中用到:mysql+spring-data-jpa+swagger2(本实例springBoot版本为2.2.2.RELEASE)
1. 实例中用到的Swagger依赖:

 <!--    swagger2   开始 -->
        <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>
        <!--swagger2结束-->

实例中所有依赖:

<dependencies>
        <!--    swagger2   开始 -->
        <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>
        <!--swagger2结束-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--Mysql数据库驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <!--jpa模板-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

2. 创建Swagger配置类

/**
 1. Swagger2配置类
 */
@Configuration   //让spring来加载该配置类
@EnableSwagger2   //开启Swagger2的功能
public class Swagger2Config {

    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())//用来展示Api的基本信息
                .select()//返回一个展示ApiSelectBuilder实例,用来控制那些接口暴露给Swagger来展示
                .apis(RequestHandlerSelectors.basePackage("com.example.controller")) //用来配置包扫描路径
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("springBoot利用swagger构建api文档")
                .description("简单优雅的restfun风格,http://blog.csdn.net/forezp")
                .termsOfServiceUrl("http://blog.csdn.net/forezp")
                .version("1.0")
                .build();
    }
}

3. application.yml全局配置

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/stus?serverTimezone=UTC
    username: root
    password: xxxxx  #根据自己的数据库密码配置
  jpa:
    hibernate:
      ddl-auto: update 
    show-sql: true
    database: mysql

4.pojo类

@Entity(name = "user")
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String username;
    private String password;
    private String name;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

5.Dao数据层

public interface UserDao extends JpaRepository<User,Long> {
    User findByUsername(String username);
}

6.Service业务层


/**用户业务层
 */
@Service
public class UserService {
    @Autowired
    private UserDao userDao;
    //根据用户名查询用户
    public User findUserByUserName(String username) {
       return userDao.findByUsername(username);
    }
    //查询所有
    public List<User> findAll(){
       return userDao.findAll();
    }
    //添加用户
    @Transactional
    public User saveUser(User user) {
        return userDao.save(user);
    }
    //根据主键id查询用户
    public User findUserById(Long id){
        Optional<User> u = userDao.findById(id);
        User user = u.get();
        return user;
    }
    //更新用户数据
    public User updateUser(User user) {
        return userDao.saveAndFlush(user);
    }
    //根据用户id删除用户数据
    public void deleteUser(long id) {
        userDao.deleteById(id);
    }
}

7.controller控制层


/**用户控制层
 */
@RestController
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserService userService;

    @GetMapping("/{username}")
    public User getUser(@PathVariable("username")String username) {
        return userService.findUserByUserName(username);
    }

    @ApiOperation(value = "用户列表",notes = "用户列表")
    @RequestMapping(value = {""},method = RequestMethod.GET)
    public List<User> getUser() {
        return userService.findAll();
    }

    @ApiOperation(value = "创建用户",notes = "创建用户")
    @PostMapping(value = "")
    public User postUser(@RequestBody User user) {
        return  userService.saveUser(user);
    }

    @ApiOperation(value = "获取用户信息",notes = "根据url的id来获取用户信息")
    @GetMapping("/i/{id}")
    public User getUser(@PathVariable("id") Long id) {
        return userService.findUserById(id);
    }

    @ApiOperation(value="更新信息",notes = "根据url的id来指定更新用户信息")
    @PutMapping("/{id}")
    public User putUser(@PathVariable Long id,@RequestBody User user) {
        User u = new User();
        u.setUsername(user.getUsername());
        u.setPassword(user.getPassword());
        u.setName(user.getName());
        u.setId(id);
        return userService.updateUser(u);
    }

    @ApiOperation(value="删除用户",notes = "根据url的id来指定删除用户")
    @DeleteMapping(value = "/{id}")
    public String deleteUser(@PathVariable Long id) {
        userService.deleteUser(id);
        return "success";
    }

}

8.springBoot启动类:

@SpringBootApplication
public class BootthreeApplication {

    public static void main(String[] args) {
        SpringApplication.run(BootthreeApplication.class, args);
    }

}

启动后在浏览器输入http://localhost:8080/swagger-ui.html跳转到接口文档页面:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值