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

Spring Boot整合Swagger測(cè)試api構(gòu)建全紀(jì)錄

 更新時(shí)間:2019年01月13日 15:48:42   作者:SimpleWu  
這篇文章主要給大家介紹了關(guān)于Spring Boot整合Swagger測(cè)試api構(gòu)建的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

什么是Swagger?

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

根據(jù)官網(wǎng)的介紹:

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

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

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

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

界面清晰,無(wú)論是editor的實(shí)時(shí)展示還是ui的展示都十分人性化,如果自己僅僅用markdown來(lái)編寫,又要糾結(jié)該如何展現(xiàn),十分痛苦。

構(gòu)建項(xiàng)目

step1.導(dǎo)入依賴

 <!--swagger服務(wù)api構(gòu)建個(gè)性包-->
 <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服務(wù)-->
 <dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
 </dependency>
 <!--springboot單元測(cè)試-->
 <dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-test</artifactId>
  <scope>test</scope>
 </dependency>

step2.編寫swagger配置類

想要使用swagger功能必須提供配置類,主要配置ui界面信息,以及配置掃描位置,swagger會(huì)根據(jù)配置的路徑掃描所有的服務(wù)生成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構(gòu)建RESTful APIs")
  .description("myapp")
  .termsOfServiceUrl("http://blog.csdn.net/SimpleWu")
  .version("1.0").build();
 }
}

step3.編寫springboot啟動(dòng)類

@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測(cè)試服務(wù)", description = "swgger測(cè)試服務(wù)")
@RequestMapping(value = "/simple/wu")
public class TestController {

 @ApiOperation(value="測(cè)試POST方法", notes="測(cè)試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測(cè)試服務(wù)", description = "swgger測(cè)試服務(wù)") 指定某個(gè)類提供服務(wù)的名字
  • @ApiOperation(value="測(cè)試POST方法", notes="測(cè)試POST方法") 指定某個(gè)請(qǐng)求的名字
  • @ApiImplicitParam(name = "令牌", value = "token", required = true, dataType = "String")指定名字對(duì)應(yīng)參數(shù)為令牌,以及對(duì)應(yīng)參數(shù)字段token,required = true代表這個(gè)參數(shù)為必填參數(shù),dataType 代表數(shù)據(jù)類型。

step5.啟動(dòng)服務(wù)

從上面的代碼中我們指定請(qǐng)求為POST在UI界面上我們會(huì)看到一個(gè)服務(wù)名字為swgger測(cè)試服務(wù)的大類點(diǎn)擊進(jìn)去后可以看到里面所擁有的請(qǐng)求,如果指定這個(gè)請(qǐng)求的類型那么無(wú)法進(jìn)行單元測(cè)試,指定后我們會(huì)看到一個(gè)請(qǐng)求名字叫做測(cè)試POST方法的請(qǐng)求并且需要填入必填參數(shù)token來(lái)完成我們的單元測(cè)試。

我們可以直接通過(guò)SwaggerApplication類來(lái)運(yùn)行main方法來(lái)進(jìn)行服務(wù),端口號(hào)默認(rèn)為8080.

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

我們?cè)L問這個(gè)位置即可看到UI界面,界面簡(jiǎn)潔并且容易上手,我這邊就不截圖了。

step.總結(jié)

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

swagger的一個(gè)最大的優(yōu)點(diǎn)是能實(shí)時(shí)同步api與文檔。

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

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • Java.toCharArray()和charAt()的效率對(duì)比分析

    Java.toCharArray()和charAt()的效率對(duì)比分析

    這篇文章主要介紹了Java.toCharArray()和charAt()的效率對(duì)比分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-10-10
  • 解決gateway報(bào)netty堆外內(nèi)存溢出io.netty.util.internal.OutOfDirectMemoryError

    解決gateway報(bào)netty堆外內(nèi)存溢出io.netty.util.internal.OutOfDirectMemor

    這篇文章主要介紹了解決gateway報(bào)netty堆外內(nèi)存溢出io.netty.util.internal.OutOfDirectMemoryError,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Java面試題沖刺第二十七天--JVM2

    Java面試題沖刺第二十七天--JVM2

    這篇文章主要為大家分享了最有價(jià)值的三道關(guān)于JVM的面試題,涵蓋內(nèi)容全面,包括數(shù)據(jù)結(jié)構(gòu)和算法相關(guān)的題目、經(jīng)典面試編程題等,感興趣的小伙伴們可以參考一下
    2021-08-08
  • sql查詢返回值使用map封裝多個(gè)key和value實(shí)例

    sql查詢返回值使用map封裝多個(gè)key和value實(shí)例

    這篇文章主要介紹了sql查詢返回值使用map封裝多個(gè)key和value實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • idea 在springboot中使用lombok插件的方法

    idea 在springboot中使用lombok插件的方法

    這篇文章主要介紹了idea 在springboot中使用lombok的相關(guān)資料,通過(guò)代碼給大家介紹在pom.xml中引入依賴的方法,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2021-08-08
  • springboot高并發(fā)下提高吞吐量的實(shí)現(xiàn)

    springboot高并發(fā)下提高吞吐量的實(shí)現(xiàn)

    這篇文章主要介紹了springboot高并發(fā)下提高吞吐量的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • java Wrapper類基本用法詳解

    java Wrapper類基本用法詳解

    在本篇文章里小編給大家整理的是一篇關(guān)于java Wrapper類基本用法詳解,有興趣的朋友們可以參考下。
    2021-01-01
  • 在springboot中使用攔截器的步驟詳解

    在springboot中使用攔截器的步驟詳解

    攔截器Interceptor,是SpringMVC中的核心內(nèi)容,在SpringBoot中使用Interceptor,同時(shí)采用全注解開發(fā),這篇文章主要介紹了在springboot中使用攔截器的步驟,需要的朋友可以參考下
    2022-01-01
  • Spring框架學(xué)習(xí)常用注解匯總

    Spring框架學(xué)習(xí)常用注解匯總

    這篇文章主要為大家介紹了Spring框架學(xué)習(xí)中一些經(jīng)常用的注解匯總及示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-10-10
  • Java中的隱式參數(shù)和顯示參數(shù)實(shí)例詳解

    Java中的隱式參數(shù)和顯示參數(shù)實(shí)例詳解

    這篇文章主要介紹了Java中的隱式參數(shù)和顯示參數(shù)是什么,另外還有兩個(gè)小例子幫助大家理解,需要的朋友可以參考下。
    2017-08-08

最新評(píng)論