Spring Boot 集成 Swagger 簡易教程

Swagger

swagger

??Swagger號稱是史上最流行的署尤、最好用的API接口文檔構(gòu)建工具甫男,它支持多種語言包括Java在內(nèi)味赃,本文僅關注如何使用Spring Boot來集成Swagger浦辨,更多關于Swagger的介紹可以查看以下幾個鏈接嫂用。

Swagger - 官網(wǎng)
Swagger - Github

SpringFox

??SpringFox最初叫Swagger-SpringMVC型凳,從字面意義上簡單來理解是使用了SpringMVC來集成Swagger,后來演變成SpringFox這么一個項目(或組織)嘱函,SpringFox官網(wǎng)有這么一句:Automated JSON API documentation for API's built with Spring(針對Spring構(gòu)建的API的自動化JSON API文檔)甘畅。好了,下來我們只需用SpringFox提供的三方庫來快速集成一下Spring Boot和Swagger。

SpringFox
SpringFox - Documentation

1. 添加Maven依賴

       <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>${latest version}</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>${latest version}</version>
        </dependency>

2. 開啟Swagger

??在Spring Boot啟動類上添加@EnableSwagger2即可疏唾。

@SpringBootApplication
@EnableSwagger2 //開啟Swagger
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

3. 配置Swagger

??

@Configuration
public class SwaggerConfig {

    @Bean
    public Docket docket() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                // 這里是全局掃描有@Api注解得類蓄氧,還可以掃描任意位置,指定包以及針對方法上的指定注解
                .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) 
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("Title")
                .description("Description")
                .termsOfServiceUrl("")
                .contact(new Contact("", "", ""))
                .license("")
                .licenseUrl("")
                .version(" xxx ")
                .build();
    }

}

4. 運行效果

??啟動Spring Boot后槐脏,可以點擊查看(更改為你的本地地址) http://localhost:8080/swagger-ui.html#/ 喉童,效果如下:

swagger-ui

5. 常用注解

??Swagger的所有注解定義在io.swagger.annotations包下,下面列一些經(jīng)常用到的顿天,未列舉出來的可以另行查閱說明:

Swagger注解 簡單說明
@Api(tags = "xxx模塊說明") 作用在模塊類上
@ApiOperation("xxx接口說明") 作用在接口方法上
@ApiModel("xxxPOJO說明") 作用在模型類上:如VO堂氯、BO
@ApiModelProperty(value = "xxx屬性說明",hidden = true) 作用在類方法和屬性上,hidden設置為true可以隱藏該屬性
@ApiParam("xxx參數(shù)說明") 作用在參數(shù)牌废、方法和字段上咽白,類似@ApiModelProperty

6. 使用Swagger

??完全以上幾小步配置后,再次打開swagger-ui界面就可以進行測試了鸟缕,相較于傳統(tǒng)的Postman或Curl方式測試接口晶框,使用swagger簡直就是傻瓜式操作,不需要額外說明文檔(寫得好本身就是文檔)而且更不容易出錯懂从,只需要錄入數(shù)據(jù)然后點擊Execute授段,如果再配合自動化框架,可以說基本就不需要人為操作了莫绣。

swagger-test

End

??Swagger是個優(yōu)秀的工具畴蒲,現(xiàn)在國內(nèi)已經(jīng)有很多的中小型互聯(lián)網(wǎng)公司都在使用它,相較于傳統(tǒng)的要先出Word接口文檔再測試的方式对室,顯然這樣也更符合現(xiàn)在的快速迭代開發(fā)行情模燥。當然了,提醒下大家在正式環(huán)境要記得關閉Swagger掩宜,一來出于安全考慮二來也可以節(jié)省運存蔫骂。之前看到過一篇深入Swagger原理的文章,最后分享出來給大家:API管理工具Swagger介紹及Springfox原理分析牺汤。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末辽旋,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子檐迟,更是在濱河造成了極大的恐慌补胚,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件追迟,死亡現(xiàn)場離奇詭異溶其,居然都是意外死亡,警方通過查閱死者的電腦和手機敦间,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進店門瓶逃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來束铭,“玉大人,你說我怎么就攤上這事厢绝∑跄” “怎么了?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵昔汉,是天一觀的道長懈万。 經(jīng)常有香客問我,道長挤庇,這世上最難降的妖魔是什么钞速? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮嫡秕,結(jié)果婚禮上渴语,老公的妹妹穿的比我還像新娘。我一直安慰自己昆咽,他們只是感情好驾凶,可當我...
    茶點故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著掷酗,像睡著了一般调违。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上泻轰,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天技肩,我揣著相機與錄音,去河邊找鬼浮声。 笑死虚婿,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的泳挥。 我是一名探鬼主播然痊,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼屉符!你這毒婦竟也來了剧浸?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤矗钟,失蹤者是張志新(化名)和其女友劉穎唆香,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吨艇,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡躬它,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了秸应。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片虑凛。...
    茶點故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖软啼,靈堂內(nèi)的尸體忽然破棺而出桑谍,到底是詐尸還是另有隱情,我是刑警寧澤祸挪,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布锣披,位于F島的核電站,受9級特大地震影響贿条,放射性物質(zhì)發(fā)生泄漏雹仿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一整以、第九天 我趴在偏房一處隱蔽的房頂上張望胧辽。 院中可真熱鬧,春花似錦公黑、人聲如沸邑商。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽人断。三九已至,卻和暖如春朝蜘,著一層夾襖步出監(jiān)牢的瞬間恶迈,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工谱醇, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留暇仲,地道東北人。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓枣抱,卻偏偏與公主長得像熔吗,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子佳晶,可洞房花燭夜當晚...
    茶點故事閱讀 45,086評論 2 355

推薦閱讀更多精彩內(nèi)容