欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot整合Swagger3生成接口文檔過程解析

 更新時間:2020年07月21日 10:50:42   作者:陳大帥哥Ray  
這篇文章主要介紹了SpringBoot整合Swagger3生成接口文檔過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

  前后端分離的項目,接口文檔的存在十分重要。與手動編寫接口文檔不同,swagger是一個自動生成接口文檔的工具,在需求不斷變更的環(huán)境下,手動編寫文檔的效率實在太低。與新版的swagger3相比swagger2配置更少,使用更加方便。

一、pom文件中引入Swagger3依賴

<dependency>
   <groupId>io.springfox</groupId>
   <artifactId>springfox-boot-starter</artifactId>
   <version>3.0.0</version>
</dependency>

二、Application上面加入@EnableOpenApi注解

@EnableOpenApi
@SpringBootApplication
@MapperScan(basePackages = {"cn.ruiyeclub.dao"})
public class Swagger3Application {
  public static void main(String[] args) {
    SpringApplication.run(Swagger3Application.class, args);
  }
}

三、Swagger3Config的配置

@Configuration
public class Swagger3Config {
  @Bean
  public Docket createRestApi() {
    return new Docket(DocumentationType.OAS_30)
        .apiInfo(apiInfo())
        .select()
        .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
        .paths(PathSelectors.any())
        .build();
  }

  private ApiInfo apiInfo() {
    return new ApiInfoBuilder()
        .title("Swagger3接口文檔")
        .description("更多請咨詢服務(wù)開發(fā)者Ray。")
        .contact(new Contact("Ray。", "http://www.ruiyeclub.cn", "ruiyeclub@foxmail.com"))
        .version("1.0")
        .build();
  }
}

四、Swagger注解的使用說明

@Api:用在請求的類上,表示對類的說明
  tags="說明該類的作用,可以在UI界面上看到的注解"
  value="該參數(shù)沒什么意義,在UI界面上也看到,所以不需要配置"

@ApiOperation:用在請求的方法上,說明方法的用途、作用
  value="說明方法的用途、作用"
  notes="方法的備注說明"

@ApiImplicitParams:用在請求的方法上,表示一組參數(shù)說明
  @ApiImplicitParam:用在@ApiImplicitParams注解中,指定一個請求參數(shù)的各個方面
    name:參數(shù)名
    value:參數(shù)的漢字說明、解釋
    required:參數(shù)是否必須傳
    paramType:參數(shù)放在哪個地方
      · header --> 請求參數(shù)的獲?。篅RequestHeader
      · query --> 請求參數(shù)的獲取:@RequestParam
      · path(用于restful接口)--> 請求參數(shù)的獲?。篅PathVariable
      · body(不常用)
      · form(不常用)  
    dataType:參數(shù)類型,默認(rèn)String,其它值dataType="Integer"    
    defaultValue:參數(shù)的默認(rèn)值

@ApiResponses:用在請求的方法上,表示一組響應(yīng)
  @ApiResponse:用在@ApiResponses中,一般用于表達一個錯誤的響應(yīng)信息
    code:數(shù)字,例如400
    message:信息,例如"請求參數(shù)沒填好"
    response:拋出異常的類

@ApiModel:用于響應(yīng)類上,表示一個返回響應(yīng)數(shù)據(jù)的信息
      (這種一般用在post創(chuàng)建的時候,使用@RequestBody這樣的場景,
      請求參數(shù)無法使用@ApiImplicitParam注解進行描述的時候)
  @ApiModelProperty:用在屬性上,描述響應(yīng)類的屬性

Controller層的配置:

@Api(tags = "用戶信息管理")
@RestController
@RequestMapping("userRecord")
public class UserRecordController extends ApiController {
  /**
   * 服務(wù)對象
   */
  @Resource
  private UserRecordService userRecordService;

  /**
   * 分頁查詢所有數(shù)據(jù)
   * @param page    分頁對象
   * @param userRecord 查詢實體
   * @return 所有數(shù)據(jù)
   */
  @ApiOperation("分頁查詢所有數(shù)據(jù)")
  @GetMapping("page")
  public R selectAll(Page<UserRecord> page, UserRecord userRecord) {
    return success(this.userRecordService.page(page, new QueryWrapper<>(userRecord)));
  }

  /**
   * 通過主鍵查詢單條數(shù)據(jù)
   * @param id 主鍵
   * @return 單條數(shù)據(jù)
   */
  @ApiOperation("通過主鍵查詢單條數(shù)據(jù)")
  @GetMapping("{id}")
  public R selectOne(@PathVariable Serializable id) {
    return success(this.userRecordService.getById(id));
  }

  /**
   * 新增數(shù)據(jù)
   * @param userRecord 實體對象
   * @return 新增結(jié)果
   */
  @ApiOperation("新增數(shù)據(jù)")
  @PostMapping("insert")
  public R insert(@RequestBody UserRecord userRecord) {
    return success(this.userRecordService.save(userRecord));
  }

  /**
   * 修改數(shù)據(jù)
   * @param userRecord 實體對象
   * @return 修改結(jié)果
   */
  @ApiOperation("修改數(shù)據(jù)")
  @PutMapping("update")
  public R update(@RequestBody UserRecord userRecord) {
    return success(this.userRecordService.updateById(userRecord));
  }

  /**
   * 刪除數(shù)據(jù)
   * @param idList 主鍵結(jié)合
   * @return 刪除結(jié)果
   */
  @ApiOperation("刪除數(shù)據(jù)")
  @DeleteMapping("delete")
  public R delete(@RequestParam("idList") List<Long> idList) {
    return success(this.userRecordService.removeByIds(idList));
  }
}

五、Swagger界面效果

Swagger的訪問路徑由port/swagger-ui.html改成了port/swagger-ui/ 或port/swagger-ui/index.html,項目演示代碼在springboot-swagger

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 關(guān)于Spring的統(tǒng)一功能處理(攔截器)實現(xiàn)

    關(guān)于Spring的統(tǒng)一功能處理(攔截器)實現(xiàn)

    這篇文章主要介紹了關(guān)于Spring的統(tǒng)一功能處理(攔截器)實現(xiàn),每個方法中都要單獨寫用戶登錄驗證的方法,即使封裝成公共方法,也一樣要傳參調(diào)用和在方法中進行判斷,需要的朋友可以參考下
    2023-05-05
  • Java并發(fā)編程之ReentrantLock可重入鎖的實例代碼

    Java并發(fā)編程之ReentrantLock可重入鎖的實例代碼

    這篇文章主要介紹了Java并發(fā)編程之ReentrantLock可重入鎖的實例代碼,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • mac下修改idea的jvm運行參數(shù)解決idea卡頓的情況

    mac下修改idea的jvm運行參數(shù)解決idea卡頓的情況

    這篇文章主要介紹了mac下修改idea的jvm運行參數(shù)解決idea卡頓的情況,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • 什么是Java自旋鎖

    什么是Java自旋鎖

    這篇文章主要介紹了什么是Java自旋鎖,在有些場景中,同步資源的鎖定時間很短,為了這一小段時間去切換線程,線程掛起和恢復(fù)現(xiàn)場的花費可能會讓系統(tǒng)得不償失,下面來了解具體內(nèi)容介紹吧
    2022-01-01
  • 基于springboot實現(xiàn)一個簡單的aop實例

    基于springboot實現(xiàn)一個簡單的aop實例

    這篇文章主要介紹了基于springboot實現(xiàn)一個簡單的aop,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-11-11
  • 詳解MyBatisPlus如何實現(xiàn)分頁和查詢操作

    詳解MyBatisPlus如何實現(xiàn)分頁和查詢操作

    這篇文章主要為大家詳細(xì)介紹了MyBatisPlus是如何實現(xiàn)分頁和查詢操作的,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)有一定的幫助,需要的可以參考一下
    2022-05-05
  • SpringBoot定制三種錯誤頁面及錯誤數(shù)據(jù)方法示例

    SpringBoot定制三種錯誤頁面及錯誤數(shù)據(jù)方法示例

    Spring Boot提供的默認(rèn)異常處理機制通常并不一定適合我們實際的業(yè)務(wù)場景,因此,我們通常會根據(jù)自身的需要對Spring Boot全局異常進行統(tǒng)一定制,例如定制錯誤頁面,定制錯誤數(shù)據(jù)等。本文主要介紹了SpringBoot三種自定義錯誤頁面的實現(xiàn),快來學(xué)習(xí)吧
    2021-12-12
  • java Object wait方法詳細(xì)介紹

    java Object wait方法詳細(xì)介紹

    這篇文章主要介紹了java Object wait方法詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • Mybatis在注解上如何實現(xiàn)動態(tài)SQL

    Mybatis在注解上如何實現(xiàn)動態(tài)SQL

    這篇文章主要介紹了Mybatis在注解上如何實現(xiàn)動態(tài)SQL,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • 使用java生成激活碼和密鑰的方法

    使用java生成激活碼和密鑰的方法

    本文主要介紹了java生成激活碼和密鑰的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05

最新評論