最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring Boot配置Swagger的實(shí)現(xiàn)代碼

 更新時(shí)間:2018年12月23日 16:23:09   作者:hrabbits  
這篇文章主要介紹了Spring Boot配置Swagger的實(shí)現(xiàn)代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

由于Spring Boot能夠快速開發(fā)、便捷部署等特性,相信有很大一部分Spring Boot的用戶會(huì)用來構(gòu)建RESTful API。而我們構(gòu)建RESTful API的目的通常都是由于多終端的原因,這些終端會(huì)共用很多底層業(yè)務(wù)邏輯,因此我們會(huì)抽象出這樣一層來同時(shí)服務(wù)于多個(gè)移動(dòng)端或者Web前端。

Swagger Inspector:測(cè)試API和生成OpenAPI的開發(fā)工具。Swagger Inspector的建立是為了解決開發(fā)者的三個(gè)主要目標(biāo)。

  • 執(zhí)行簡(jiǎn)單的API測(cè)試
  • 生成OpenAPI文檔
  • 探索新的API功能

下面來具體介紹,如果在Spring Boot中使用Swagger2。

添加Swagger2依賴

在pom.xml中加入Swagger2的依賴

 <!-- Swagger API-->
    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger2</artifactId>
      <version>2.2.2</version>
    </dependency>
    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger-ui</artifactId>
      <version>2.2.2</version>
    </dependency>

創(chuàng)建Swagger2配置類

在HrabbitAdminApplication.java子包下創(chuàng)建Swagger2的配置類Swagger2。

通過@Configuration注解,讓Spring來加載該類配置。再通過@EnableSwagger2注解來啟用Swagger2。

再通過createRestApi函數(shù)創(chuàng)建Docket的Bean之后,apiInfo()用來創(chuàng)建該Api的基本信息(這些基本信息會(huì)展現(xiàn)在文檔頁面中)。select()函數(shù)返回一個(gè)ApiSelectorBuilder實(shí)例用來控制哪些接口暴露給Swagger來展現(xiàn),包含注解的方式來確定要顯示的接口,當(dāng)然也可以通過包掃描的方式來確定要顯示的包的接口。

/**
 * 配置Swagger
 *
 * @Auther: hrabbit
 * @Date: 2018-12-17 6:43 PM
 * @Description:
 */
@Configuration
@EnableSwagger2
public class SwaggerConfig {

  @Bean
  public Docket createRestApi() {
    return new Docket(DocumentationType.SWAGGER_2)
        .apiInfo(apiInfo())
        .select()
        .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))             //這里采用包含注解的方式來確定要顯示的接口
        //.apis(RequestHandlerSelectors.basePackage("com.hrabbit.admin.modual.system.controller"))  //這里采用包掃描的方式來確定要顯示的接口
        .paths(PathSelectors.any())
        .build();
  }

  private ApiInfo apiInfo() {
    return new ApiInfoBuilder()
        .title("Hrabbit-Admin Doc")
        .description("Guns Api文檔")
        .termsOfServiceUrl("https://gitee.com/hrabbit/hrabbit-admin")
        .contact("hrabbit")
        .version("1.0")
        .build();
  }

}

添加文檔內(nèi)容

我們通過@Api說明Controller,@ApiOperation注解來給API增加說明、通過@ApiImplicitParams、@ApiImplicitParam注解來給參數(shù)增加說明。

/**
 * 系統(tǒng)用戶
 *
 * @Auther: hrabbit
 * @Date: 2018-12-17 6:21 PM
 * @Description:
 */
@Controller
@RequestMapping("user")
@Api(value = "系統(tǒng)用戶")
public class SysUserController {

  @Autowired
  private SysUserService sysUserService;

  /**
   * 根據(jù)id獲取用戶信息
   *
   * @return
   */
  @RequestMapping("/",method = RequestMethod.GET)
  @ResponseBody
  @ApiOperation(value = "進(jìn)入到主頁")
  public Object index() {
    return sysUserService.selectById(1L);
  }

  /**
   * 創(chuàng)建用戶信息
   *
   * @param user
   * @return
   */
  @ApiOperation(value = "創(chuàng)建用戶", notes = "根據(jù)SysUser對(duì)象創(chuàng)建用戶")
  @ApiImplicitParam(name = "user", value = "用戶詳細(xì)實(shí)體user", required = true, dataType = "SysUser")
  @RequestMapping(value = "", method = RequestMethod.POST)
  public String postUser(@RequestBody SysUser user) {
    return "success";
  }

  /**
   * 修改用戶信息
   *
   * @param id
   * @param user
   * @return
   */
  @ApiOperation(value = "更新用戶詳細(xì)信息", notes = "根據(jù)id更新系統(tǒng)用戶")
  @ApiImplicitParams({
      @ApiImplicitParam(name = "id", value = "用戶ID", required = true, dataType = "Long"),
      @ApiImplicitParam(name = "user", value = "用戶詳細(xì)實(shí)體sysUser", required = true, dataType = "SysUser")
  })
  @RequestMapping(value = "/{id}", method = RequestMethod.PUT)
  public String putUser(@PathVariable Long id, @RequestBody SysUser user) {
    return "success";
  }

}

完成上述代碼添加上,啟動(dòng)Spring Boot程序,訪問:http://localhost:8080/swagger-ui.html
。就能看到前文所展示的RESTful API的頁面。我們可以再點(diǎn)開具體的API請(qǐng)求,以POST類型的/user請(qǐng)求為例,可找到上述代碼中我們配置的Notes信息以及參數(shù)user的描述信息,如下圖所示。

API文檔訪問與調(diào)試

在上圖請(qǐng)求的頁面中,我們看到user的Value是個(gè)輸入框?是的,Swagger除了查看接口功能外,還提供了調(diào)試測(cè)試功能,我們可以點(diǎn)擊上圖中右側(cè)的Model Schema(黃色區(qū)域:它指明了User的數(shù)據(jù)結(jié)構(gòu)),此時(shí)Value中就有了user對(duì)象的模板,我們只需要稍適修改,點(diǎn)擊下方“Try it out!”按鈕,即可完成了一次請(qǐng)求調(diào)用!

本篇文章,一些文字內(nèi)容借鑒了程序猿DD的Swagger內(nèi)容,該系列文章內(nèi)容主要以如何搭建一個(gè)完整的后臺(tái)Spirng Boot Cli為主,其他的基礎(chǔ)信息可以參考其他博主內(nèi)容!

碼云地址:https://gitee.com/hrabbit/hrabbit-admin

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

相關(guān)文章

  • Java中的@builder建造者模式詳細(xì)解析

    Java中的@builder建造者模式詳細(xì)解析

    這篇文章主要介紹了Java中的@builder建造者模式詳細(xì)解析,使用 @Builder 注解可以簡(jiǎn)化手動(dòng)編寫建造者模式的代碼,使代碼更加簡(jiǎn)潔易讀,它可以自動(dòng)生成鏈?zhǔn)秸{(diào)用的方法來設(shè)置對(duì)象的屬性,并且可以在需要時(shí)進(jìn)行可選屬性的設(shè)置,需要的朋友可以參考下
    2024-01-01
  • Spring Data JPA 之 JpaRepository的使用

    Spring Data JPA 之 JpaRepository的使用

    這篇文章主要介紹了Spring Data JPA 之 JpaRepository的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Spring boot 添加jsp支持配置詳解

    Spring boot 添加jsp支持配置詳解

    本篇文章主要介紹了Spring boot 添加jsp支持配置詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • MyBatis+MyBatisPlus中遇到的一些坑及解決

    MyBatis+MyBatisPlus中遇到的一些坑及解決

    這篇文章主要介紹了MyBatis+MyBatisPlus中遇到的一些坑及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • SpringBoot如何導(dǎo)出Jar包并測(cè)試(使用IDEA)

    SpringBoot如何導(dǎo)出Jar包并測(cè)試(使用IDEA)

    這篇文章主要介紹了SpringBoot如何導(dǎo)出Jar包并測(cè)試(使用IDEA),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • SpringBoot+ruoyi框架文件上傳和下載的實(shí)現(xiàn)

    SpringBoot+ruoyi框架文件上傳和下載的實(shí)現(xiàn)

    文件的上傳和下載功能,是項(xiàng)目開發(fā)過程中比較常見的業(yè)務(wù)需求,本文主要介紹了SpringBoot+ruoyi框架文件上傳和文件下載的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • Java代碼執(zhí)行shell命令的實(shí)現(xiàn)

    Java代碼執(zhí)行shell命令的實(shí)現(xiàn)

    這篇文章主要介紹了Java代碼執(zhí)行shell命令的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • java判斷字符串中是否包含中文并過濾中文

    java判斷字符串中是否包含中文并過濾中文

    這篇文章主要為大家詳細(xì)介紹了java判斷字符串中是否包含中文,并過濾掉中文,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • 去掉IntelliJ IDEA 中 mybatis 對(duì)應(yīng)的 xml 文件警告的教程圖解

    去掉IntelliJ IDEA 中 mybatis 對(duì)應(yīng)的 xml 文件警告的教程圖解

    本文通過圖文并茂的形式給大家介紹了去掉IntelliJ IDEA 中 mybatis 對(duì)應(yīng)的 xml 文件警告的教程,需要的朋友可以參考下
    2018-06-06
  • Java如何取掉json數(shù)據(jù)中值為null的屬性字段

    Java如何取掉json數(shù)據(jù)中值為null的屬性字段

    這篇文章主要介紹了Java如何取掉json數(shù)據(jù)中值為null的屬性字段,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03

最新評(píng)論

漯河市| 吉安市| 永寿县| 九江市| 临泉县| 鱼台县| 历史| 固始县| 广南县| 崇左市| 天祝| 东海县| 黎城县| 武邑县| 阿克陶县| 太白县| 成都市| 荥阳市| 泸州市| 濉溪县| 上犹县| 孟津县| 玉田县| 建水县| 凤阳县| 左贡县| 民权县| 武乡县| 隆回县| 海盐县| 大方县| 承德市| 长沙市| 扎赉特旗| 长宁县| 喀喇沁旗| 绵竹市| 民乐县| 都昌县| 正阳县| 兴义市|