SpringBoot + Swagger2 構(gòu)建API文檔

先貼效果

image.png
  • 右上角可以選擇分組,每個(gè)分組下可以設(shè)標(biāo)簽管理api
  • 每個(gè)api可以直接測(cè)試

1. maven dependency

新建maven項(xiàng)目,這里使用的是idea的Spring Initializr,勾選web依賴,就快速構(gòu)建了SpringBoot項(xiàng)目,有了tomcat和發(fā)布RESTful API能力指厌。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.9.2</version>
</dependency>

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.9.2</version>
</dependency>

2. 配置swagger2

主要是構(gòu)建Docket Bean,SwaggerConfig.java代碼如下:

@Configuration
@EnableSwagger2
@Profile({"dev", "test"}) 
public class SwaggerConfig {
    @Bean
    public Docket apiGroup1() {
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("Group 1").tags(
                        new Tag("標(biāo)簽一", "描述")
                        , new Tag("標(biāo)簽二", "描述")
                )
                .apiInfo(this.getApiInfo("接口", "接口"))
                .select()
                .apis(RequestHandlerSelectors.any())
                .paths(or(regex("/demo.*")))
                .build();
    }

    private ApiInfo getApiInfo(String title, String desc) {
        return new ApiInfo(
                "XX系統(tǒng) " + title + " API",
                desc + " API文檔",
                "1.0",
                "",
                new Contact("聯(lián)系我們", "", "mail@mail.com"),
                "license",
                "licenseUrl",
                new ArrayList<>());
    }
  • @Profile({"dev", "test"}) 指明了只在dev和test profile運(yùn)行時(shí)啟用swagger踊跟,如實(shí)際項(xiàng)目運(yùn)行prod profile時(shí)就不啟用swagger
  • .groupName可以不設(shè)踩验,默認(rèn)會(huì)有一個(gè)default的分組,實(shí)際項(xiàng)目中模塊比較多商玫,這個(gè)分組會(huì)比較實(shí)用晰甚,UI中右上角可以切換分組。 分組可以把多個(gè)tag組織在一起决帖,通常是一個(gè)controler對(duì)應(yīng)一個(gè)tag。需要加一個(gè)分組可以再建一個(gè)Docket Bean蓖捶。

3. 新增Controller

package com.bq.demo.test;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.apache.catalina.User;
import org.springframework.web.bind.annotation.*;

@Api(value = "/demo/test", tags = "標(biāo)簽一")
@RestController
@RequestMapping("/demo/test")
public class TestSwaggerController {
    @ApiOperation(value = "顯示helloWorld", notes = "顯示helloWorld")
    @GetMapping("/helloWorld")
    public Object showInfo() {
        return "hello world";
    }

    @ApiOperation(value = "添加用戶信息", notes = "添加用戶信息")
    @ApiImplicitParam(name = "user", value = "User", required = true, dataType = "User")
    @PostMapping("/addUser")
    public Object addUser(@RequestBody User user) {
        return "success";
    }
}
  • 注意@Api中tags和上面group中的對(duì)應(yīng)
  • 標(biāo)簽二的Controller代碼只是復(fù)制了一份地回,改了下@Api和@RequestMapping映射
  • 打開 http://localhost:8080/swagger-ui.html 測(cè)試
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市俊鱼,隨后出現(xiàn)的幾起案子刻像,更是在濱河造成了極大的恐慌,老刑警劉巖并闲,帶你破解...
    沈念sama閱讀 211,423評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件细睡,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡帝火,警方通過(guò)查閱死者的電腦和手機(jī)溜徙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,147評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)犀填,“玉大人蠢壹,你說(shuō)我怎么就攤上這事【叛玻” “怎么了图贸?”我有些...
    開封第一講書人閱讀 157,019評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我疏日,道長(zhǎng)偿洁,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,443評(píng)論 1 283
  • 正文 為了忘掉前任沟优,我火速辦了婚禮涕滋,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘净神。我一直安慰自己何吝,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,535評(píng)論 6 385
  • 文/花漫 我一把揭開白布鹃唯。 她就那樣靜靜地躺著爱榕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪坡慌。 梳的紋絲不亂的頭發(fā)上黔酥,一...
    開封第一講書人閱讀 49,798評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音洪橘,去河邊找鬼跪者。 笑死,一個(gè)胖子當(dāng)著我的面吹牛熄求,可吹牛的內(nèi)容都是我干的渣玲。 我是一名探鬼主播,決...
    沈念sama閱讀 38,941評(píng)論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼弟晚,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼忘衍!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起卿城,我...
    開封第一講書人閱讀 37,704評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤枚钓,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后瑟押,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體搀捷,經(jīng)...
    沈念sama閱讀 44,152評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,494評(píng)論 2 327
  • 正文 我和宋清朗相戀三年多望,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了嫩舟。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,629評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡怀偷,死狀恐怖至壤,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情枢纠,我是刑警寧澤像街,帶...
    沈念sama閱讀 34,295評(píng)論 4 329
  • 正文 年R本政府宣布黎棠,位于F島的核電站,受9級(jí)特大地震影響镰绎,放射性物質(zhì)發(fā)生泄漏脓斩。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,901評(píng)論 3 313
  • 文/蒙蒙 一畴栖、第九天 我趴在偏房一處隱蔽的房頂上張望随静。 院中可真熱鬧,春花似錦吗讶、人聲如沸燎猛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)重绷。三九已至,卻和暖如春膜毁,著一層夾襖步出監(jiān)牢的瞬間昭卓,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,978評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工瘟滨, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留候醒,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,333評(píng)論 2 360
  • 正文 我出身青樓杂瘸,卻偏偏與公主長(zhǎng)得像倒淫,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子败玉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,499評(píng)論 2 348

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