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

詳談Springfox與swagger的整合使用

 更新時間:2017年08月01日 14:11:30   投稿:jingxian  
下面小編就為大家?guī)硪黄斦凷pringfox與swagger的整合使用。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

一、前言

讓我們先理一下springfoxswagger的關(guān)系。

swagger是一個流行的API開發(fā)框架,這個框架以“開放API聲明”(OpenAPI SpecificationOAS)為基礎(chǔ),對整個API的開發(fā)周期都提供了相應(yīng)的解決方案,是一個非常龐大的項目(包括設(shè)計、編碼和測試,幾乎支持所有語言)。

OAS本身是一個API規(guī)范,它用于描述一整套API接口,包括一個接口是GET還是POST請求啊,有哪些參數(shù)哪些header啊,都會被包括在這個文件中。它在設(shè)計的時候通常是YAML格式,這種格式書寫起來比較方便,而在網(wǎng)絡(luò)中傳輸時又會以json形式居多,因?yàn)?/span>json的通用性比較強(qiáng)。

由于Spring的流行,Marty Pitt編寫了一個基于Spring的組件swagger-springmvc,用于將swagger集成到springmvc中來。而springfox則是從這個組件發(fā)展而來,同時springfox也是一個新的項目,本文仍然是使用其中的一個組件springfox-swagger2

pringfox-swagger2依然是依賴OSA規(guī)范文檔,也就是一個描述APIjson文件,而這個組件的功能就是幫助我們自動生成這個json文件,我們會用到的另外一個組件springfox-swagger-ui就是將這個json文件解析出來,用一種更友好的方式呈現(xiàn)出來。

這是入門,我們簡單地介紹springfox-swagger2的配置,幫助各位順利地實(shí)現(xiàn)使用,文中有很多自己的理解,若有錯誤,歡迎批評指正。

二、配置流程說明

在開始編碼之前,我們先對配置的流程有個大致的了解。

在前言中,我們知道,我們的第一個任務(wù)就是生成一個滿足OSA規(guī)范的json文件(當(dāng)然,創(chuàng)建一個spring的項目就不說了)。對于這個任務(wù),springfox為我們提供了一個Docket(摘要的意思)類,我們需要把它做成一個Bean注入到spring中,顯然,我們需要一個配置文件,并通過一種方式(顯然它會是一個注解)告訴程序,這是一個Swagger配置文件。

一個OSA規(guī)范文檔需要許多信息來描述這個APIspringfox允許我們將信息組合成一個ApiInfo的類,作為構(gòu)造參數(shù)傳給Docket(當(dāng)然也可以不構(gòu)造這個類,而直接使用null,但是你的這個API就太low了)。

接下來,我們要寫控制器了,當(dāng)然這不重要,不用springfox你依然要寫控制器,重要的是要告訴springfox,這個控制器是一個需要他來收集API信息的控制器,不用說,這依然會采用注解的方式,同時,我們?yōu)榱藢⑴渲梦募c控制器結(jié)合起來,需要在配置文件中指明在什么位置收集可能是API的控制器的信息。

到這里,生成OSA規(guī)范的json文件的配置就結(jié)束了。雖然生成過程比我敘述的更復(fù)雜,但這些程序都會幫我們完成,我們可以通過類似http://localhost:8080/demo/v2/api-docs的路徑來查看這個json文件。這個v2/api-docs就是springfox默認(rèn)的生成文檔的路徑。

接下來,我們需要將它可視化顯示出來,如果使用swagger-springmvc,我們需要單獨(dú)去下載一個swagger ui的顯示頁面包,并將其中的路徑改為上面的http://localhost:8080/demo/v2/api-docs,這里你就可以感受到,swagger ui就是在解析一個json文件了。你依然可以這么做,不過springfox專門提供了一個springfox-swagger-ui組件,不需要配置,我們只需要引入這個依賴的組件就可以看到最終的效果了,而這個路由會是http://localhost:8080/demo/swagger-ui.html

三、引入依賴

如果我寫的不錯,相信看到這里,你就大致了解了springfox swagger2的使用流程了。那么,我們進(jìn)入正式編碼的第一步:引入依賴。

這里我們使用maven引入依賴,大家可以到http://mvnrepository.com上搜索springfox,便可以看到Springfox Swagger2Springfox Swagger Ui,然后就可以從中獲取最新的資源了。如下:

<dependency>

 <groupId>io.springfox</groupId>

 <artifactId>springfox-swagger2</artifactId>

 <version>2.7.0</version>

</dependency>

<dependency>

 <groupId>io.springfox</groupId>

 <artifactId>springfox-swagger-ui</artifactId>

 <version>2.7.0</version>

</dependency>

此外還需要一個依賴組件:

<dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-databind</artifactId>
  <version>2.6.6</version>
</dependency>
 

四、一個簡單的配置文件

為了清晰,我們可以先在常用的源碼包里建一個config目錄,并在里面創(chuàng)建一個SwaggerConfig.java文件,這是一個spring的配置文件,所以位置和文件名都影響不大。

先上代碼:

@Configuration //必須存在
@EnableSwagger2 //必須存在
@EnableWebMvc //必須存在
@ComponentScan(basePackages = {"com.xiaoming.SpringMVC.controller"}) //必須存在 掃描的API Controller package name 也可以直接掃描class (basePackageClasses)
public class SwaggerConfig{
 @Bean
 public Docket customDocket() {
  return new Docket(DocumentationType.SWAGGER_2)
    .apiInfo(apiInfo());
 }

 private ApiInfo apiInfo() {
  Contact contact = new Contact("小明", "http://m.fzitv.net/", "zhaomin0018@126.com");
  return new ApiInfoBuilder()
    .title("前臺API接口")
    .description("前臺API接口")
    .contact(contact)
    .version("1.1.0")
    .build();
 }
}

由于各位肯定用的是IDE,這里就不寫各種import了。

首先,這個SwaggerConfig類有四個注解,看名稱就可以明白是什么意思。其中,@Configuration,@EnableWebMvc和@ComponentScan是Spring的注解,而@EnableSwagger2則是用來啟動Swagger支持,表示這是一個Spring Swagger的配置文件。

之后,定義了一個Bean方法CustomDocket,Spring中名字并不重要,重要的是它返回一個Docket類,DocumentationType.SWAGGER_2作為Docket構(gòu)造方法的參數(shù),指定了所用的swagger版本2.0,官網(wǎng)上已經(jīng)在預(yù)告3.0版本了。而之后的apiInfo則是調(diào)用接下來的apiInfo函數(shù),來創(chuàng)建Docket的信息。apiInfo函數(shù)采用ApiInfoBuilder來創(chuàng)建ApiInfo類。

五、一個控制器

其實(shí),控制器不需要配置,就已經(jīng)會被springfox swagger識別了,不過我們這里象征性地加上一個描述信息:

@Controller
@RequestMapping("/test")
public class TestController {
 @ApiOperation(value="一個測試API",notes = "第一個測試api")
 @ResponseBody
 @RequestMapping(value = "/hello",method = RequestMethod.GET)
 public String hello()
 {
  return "hello";
 }
}
 

這里僅僅多了一個@ApiOperation注解,別的和一個普通的springmvc的控制器完全一致。

實(shí)際上,為了形成一個完整的api文檔,需要添加的注解常常很多,若是都寫在同一個文件里就會顯得臃腫,我們常常會寫一個接口文件,將注解都放在接口文件中,然后再用一個實(shí)體類來實(shí)現(xiàn)控制器,算是實(shí)現(xiàn)配置和邏輯分離了吧。

六、查看接口文件和文檔

若是沒有問題,現(xiàn)在可以部署項目,并打開http://localhost:8080/demo/v2/api-docs

Firefox提供了查看JSON的插件,推薦大家搜索試試看。

廢話不多說,這里可以看到之前配置的諸多信息。注入descriptionversion,title等。并且確實(shí)有TestController的信息。

最后,我們打開http://localhost:8080/swagger-ui.html,便可以看到一個漂亮的界面了:

以上這篇詳談Springfox與swagger的整合使用就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

江城| 通渭县| 凤翔县| 清苑县| 五常市| 双流县| 临澧县| 合江县| 政和县| 潜山县| 分宜县| 天台县| 海丰县| 繁昌县| 兰溪市| 盖州市| 静宁县| 钟山县| 富锦市| 景洪市| 古丈县| 和林格尔县| 友谊县| 阿城市| 黄大仙区| 景洪市| 息烽县| 姜堰市| 炎陵县| 台湾省| 霍林郭勒市| 盈江县| 芜湖市| 高青县| 永宁县| 平潭县| 阿克陶县| 洞口县| 九寨沟县| 江华| 成安县|