spring boot使用swagger生成api介面檔案

2022-10-14 12:09:09

前言

在之前的文章中,使用mybatis-plus生成了對應的包,在此基礎上,我們針對專案的api介面,新增swagger設定和註解,生成swagger介面檔案

具體可以檢視本站spring boot系列文章:

spring boot專案使用mybatis-plus程式碼生成範例

具體例子

maven設定

在使用之前,我們需要新增swagger中maven相關依賴設定

<!--swagger 介面說明檔案框架-->
<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>

專案application.yml設定


swagger:
  basePackage: com.lewyon.mybatislewyon #包名
  title: 標題  #標題
  description: lewyon #描述
  version: V1.0  #版本號


以上設定包含了swagger檔案展示的包名,標題以及描述,版本號等資訊

springApplication新增swagger註解

在springApplication新增swagger註解之後,專案啟動時,會注入swagger相關設定和程式碼,

專案啟動成功之後

服務地址/swagger-ui.html就是當前swagger檔案地址

當前專案是:http://localhost:8080/swagger-ui.html


package com.lewyon.mybatislewyon;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@EnableSwagger2
@SpringBootApplication
public class MybatislewyonApplication {
    public static void main(String[] args) {
        SpringApplication.run(MybatislewyonApplication.class, args);
    }

}


在控制層新增swagger註解

Api 常用於描述當前Rest的模組資訊
ApiOperation 則是當前方法的資訊

package com.lewyon.mybatislewyon.user.controller;


import com.lewyon.mybatislewyon.user.entity.User;
import com.lewyon.mybatislewyon.user.service.UserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * <p>
 * 前端控制器
 * </p>
 *
 * @author lewyon
 * @since 2022-06-25
 */
@RestController
@RequestMapping("/user")
@Api(value = "使用者", tags = {"使用者操作"})
public class UserController {
    @Autowired
    UserService userService;

    @GetMapping("/list")
    @ApiOperation("使用者列表")
    public List<User> listUser() {
        return userService.list();
    }

    @GetMapping("/getUser/{userId}")
    @ApiOperation("使用者詳情")
    public User getUserById(@PathVariable long userId) {
        return userService.getById(userId);
    }

    @GetMapping("/updateUser/{user}")
    @ApiOperation("更新使用者")
    public boolean updateUserById(User user) {
        return userService.updateById(user);
    }

    @GetMapping("/addUser/{user}")
    @ApiOperation("新增使用者")
    public boolean addUser(User user) {
        return userService.save(user);
    }

    @GetMapping("/deleteUser/{id}")
    @ApiOperation("刪除使用者")
    public boolean delUserById(String id) {
        return userService.removeById(id);
    }

}

總結

以上就是spring boot整合swagger生成介面檔案的例子,關於swagger更多設定,可以查閱swagger官方檔案

swagger官方檔案

文章個人部落格地址:

spring boot使用swagger生成api介面檔案

專案原始碼地址:

https://gitee.com/lewyon/spring-note

專案原始碼包含了swagger,後續更新關於spring boot整合swagger基礎範例

歡迎關注公眾號:程式設計師布歐,不定期更新技術入門文章

創作不易,轉載請註明出處和作者。