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

Spring Boot整合Swagger測試api構建全紀錄

 更新時間:2019年01月13日 15:48:42   作者:SimpleWu  
這篇文章主要給大家介紹了關于Spring Boot整合Swagger測試api構建的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

什么是Swagger?

Swagger是什么:THE WORLD'S MOST POPULAR API TOOLING

根據官網的介紹:

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

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

我的理解Swagger是一個規(guī)范和完整的框架,用于生成、描述、調用和可視化RESTful風格的Web服務。簡單來說,Swagger是一個功能強大的接口管理工具,并且提供了多種編程語言的前后端分離解決方案。根據我的使用,當然我只是最簡單的使用,我感覺Swagger有以下幾個優(yōu)點:

Swagger可以整合到代碼中,在開發(fā)時通過注解,編寫注釋,自動生成API文檔。
將前端后臺分開,不會有過分的依賴。

界面清晰,無論是editor的實時展示還是ui的展示都十分人性化,如果自己僅僅用markdown來編寫,又要糾結該如何展現,十分痛苦。

構建項目

step1.導入依賴

 <!--swagger服務api構建個性包-->
 <dependency>
  <groupId>io.springfox</groupId>
  <artifactId>springfox-swagger2</artifactId>
  <version>2.6.1</version>
 </dependency>
 <!--swagger ui界面-->
 <dependency>
  <groupId>io.springfox</groupId>
  <artifactId>springfox-swagger-ui</artifactId>
  <version>2.6.1</version>
 </dependency>
 <!--springboot web服務-->
 <dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
 </dependency>
 <!--springboot單元測試-->
 <dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-test</artifactId>
  <scope>test</scope>
 </dependency>

step2.編寫swagger配置類

想要使用swagger功能必須提供配置類,主要配置ui界面信息,以及配置掃描位置,swagger會根據配置的路徑掃描所有的服務生成api。

其中核心RequestHandlerSelectors.basePackage("com.simple.spring.boot.controller"),在這里配置我們的需要的掃描包位置。

@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket createRestApi() {
  return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo())
   .select()
   .apis(RequestHandlerSelectors.basePackage("com.simple.spring.boot.controller"))
   .paths(PathSelectors.any()).build();
}
private ApiInfo apiInfo() {
 return new ApiInfoBuilder()
  .title("Spring Boot中使用Swagger2構建RESTful APIs")
  .description("myapp")
  .termsOfServiceUrl("http://blog.csdn.net/SimpleWu")
  .version("1.0").build();
 }
}

step3.編寫springboot啟動類

@ComponentScan(basePackages={"com.simple.spring.boot.controller"}) 也是需要配置掃描路徑。

@SpringBootApplication
@ComponentScan(basePackages={"com.simple.spring.boot.controller"}) 
public class SwaggerApplication {
 public static void main(String[] args) {
  SpringApplication.run(SwaggerApplication.class, args);
 }
}

step4.創(chuàng)建前端控制器

@RestController
@Api(tags = "swgger測試服務", description = "swgger測試服務")
@RequestMapping(value = "/simple/wu")
public class TestController {

 @ApiOperation(value="測試POST方法", notes="測試POST方法")
 @ApiImplicitParam(name = "令牌", value = "ID", required = true, dataType = "token")
 @RequestMapping(value="hello", method=RequestMethod.POST)
 public String post(@RequestBody String token) {
  books.put(book.getId(), book);
  return "success";
 }
}
  • @Api(tags = "swgger測試服務", description = "swgger測試服務") 指定某個類提供服務的名字
  • @ApiOperation(value="測試POST方法", notes="測試POST方法") 指定某個請求的名字
  • @ApiImplicitParam(name = "令牌", value = "token", required = true, dataType = "String")指定名字對應參數為令牌,以及對應參數字段token,required = true代表這個參數為必填參數,dataType 代表數據類型。

step5.啟動服務

從上面的代碼中我們指定請求為POST在UI界面上我們會看到一個服務名字為swgger測試服務的大類點擊進去后可以看到里面所擁有的請求,如果指定這個請求的類型那么無法進行單元測試,指定后我們會看到一個請求名字叫做測試POST方法的請求并且需要填入必填參數token來完成我們的單元測試。

我們可以直接通過SwaggerApplication類來運行main方法來進行服務,端口號默認為8080.

swagger地址:http://localhost:8080/swagger-ui.html 只需要在地址后面加上swagger-ui.html即可訪問

我們訪問這個位置即可看到UI界面,界面簡潔并且容易上手,我這邊就不截圖了。

step.總結

swagger官方文檔:https://www.baeldung.com/swagger-2-documentation-for-spring-rest-api

swagger的一個最大的優(yōu)點是能實時同步api與文檔。

在項目開發(fā)過程中,發(fā)生過多次:修改代碼但是沒有更新文檔,前端還是按照老舊的文檔進行開發(fā),在聯(lián)調過程中才發(fā)現問題的情況(當然依據開閉原則,對接口的修改是不允許的,但是在項目不穩(wěn)定階段,這種情況很難避免)。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關文章

  • Java中保證多線程間的數據共享的方法詳解

    Java中保證多線程間的數據共享的方法詳解

    這篇文章詳解的發(fā)給大家介紹了Java中是如何保證多線程間的數據共享的,文中通過圖文介紹的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下
    2023-11-11
  • Java內存溢出實現原因及解決方案

    Java內存溢出實現原因及解決方案

    這篇文章主要介紹了Java內存溢出實現原因及解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • 解決SpringBoot啟動過后不能訪問jsp頁面的問題(超詳細)

    解決SpringBoot啟動過后不能訪問jsp頁面的問題(超詳細)

    這篇文章主要介紹了解決SpringBoot啟動過后不能訪問jsp頁面的問題,文中通過示例代碼介紹的非常詳細,有需要的朋友可以參考一下,希望對你有所幫助。
    2020-05-05
  • 一文讀懂JavaWeb前后端數據交互

    一文讀懂JavaWeb前后端數據交互

    本文主要介紹了一文讀懂JavaWeb前后端數據交互,包括HTTP請求與響應、JSON數據格式以及常用的數據傳輸技術,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • Mybatis常見注解有哪些(總結)

    Mybatis常見注解有哪些(總結)

    這篇文章主要介紹了Mybatis常見注解有哪些(總結),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • 圖文示例詳解Lucene數據模型查詢原理

    圖文示例詳解Lucene數據模型查詢原理

    這篇文章主要為大家通過圖文示例詳解Lucene數據模型查詢原理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • SpringBoot動態(tài)數據源連接測試的操作詳解

    SpringBoot動態(tài)數據源連接測試的操作詳解

    這篇文章主要介紹了SpringBoot動態(tài)數據源連接測試的操作步驟,文中通過代碼示例和圖文結合的方式給大家講解的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下
    2024-03-03
  • SpringBoot用多線程批量導入數據庫實現方法

    SpringBoot用多線程批量導入數據庫實現方法

    這篇文章主要介紹了SpringBoot用多線程批量導入數據庫實現方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2023-02-02
  • String?concat(String?str)使用小結

    String?concat(String?str)使用小結

    這篇文章主要介紹了String?concat(String?str)使用小結,在了解concat()之前,首先需要明確的是String的兩點特殊性,一是長度不可變二是值不可變,本文給大家詳細講解,需要的朋友可以參考下
    2022-11-11
  • Spring Boot日志的打印與持久化詳細解析

    Spring Boot日志的打印與持久化詳細解析

    Spring Boot默認使用SLF4J+Logback 記錄日志,并提供了默認配置,即使我們不進行任何額外配,也可以使用SLF4J+Logback進行日志輸出
    2022-07-07

最新評論

北川| 永宁县| 大兴区| 张家口市| 乐至县| 长治市| 梧州市| 且末县| 东城区| 绥化市| 宝应县| 镶黄旗| 安平县| 隆尧县| 大化| 兴和县| 长子县| 英超| 明溪县| 丽水市| 含山县| 牡丹江市| 离岛区| 读书| 班戈县| 吴川市| 凤阳县| 怀宁县| 枞阳县| 镇坪县| 望城县| 武邑县| 东莞市| 宁德市| 蒲城县| 全椒县| 山丹县| 大渡口区| 雷山县| 阳泉市| 茶陵县|