springboot集成swagger2生產(chǎn)API文檔

springboot項(xiàng)目中,前后端分離開發(fā)钳踊,前端頁面要調(diào)用后端api處理業(yè)務(wù)就需要知道api接口的詳細(xì)說明衷敌,包括調(diào)用路徑勿侯、調(diào)用方式、入?yún)⒔陕蕖⒊鰠⒌认嚓P(guān)要素助琐。在早些年的時(shí)候,前后端人員都是通過編寫word接口文檔方式進(jìn)行溝通面氓,工作量非常大兵钮,溝通效率也不高。在swigger出現(xiàn)后舌界,開發(fā)人員徹底從編寫word接口文檔中解放出來掘譬,把精力放在具體的業(yè)務(wù)實(shí)現(xiàn)上。
swigger是一款能夠自動(dòng)生成api接口文檔的框架呻拌,我們只需要根據(jù)swigger提供的語言規(guī)范在API接口處添加對(duì)應(yīng)的描述葱轩,它就能自動(dòng)生成接口文檔,并能夠在線查看藐握,大大縮減了前后端開發(fā)人員的溝通成本靴拱。

1.添加swagger依賴

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

2.配置swagger

@Configuration
@EnableSwagger2
public class Swagger2Config {

    @Bean
    public ApiInfo apiInfo(){
        return new ApiInfoBuilder()
                .title("xxx林業(yè)平臺(tái)")
                .description("xxx林業(yè)平臺(tái)后臺(tái)api接口文檔")
                .termsOfServiceUrl("127.0.0.1:9000") //根據(jù)本機(jī)端口配置
                .version("1.0")
                .build();
    }

    @Bean
    public Docket docket(){
        return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.cc.app")) //api包路徑
                .paths(PathSelectors.regex("/api/.*")) //api的path
                .build();
    }
}

3.使用swagger注解
通過swagger提供的注解對(duì)api接口進(jìn)行描述,swagger根據(jù)描述生成api接口文檔趾娃。
常用的注解如下:
@Api(value = "/api/jc_sp_line", description = "樣線監(jiān)測(cè)數(shù)據(jù)") 用于類描述
@ApiOperation(value = "根據(jù)ID查詢信息",notes = "根據(jù)ID查詢信息") 用于方法描述
@ApiImplicitParam(name = "params", value = "UID 如:{id:'aa'}" ) 用于參數(shù)字段描述
@ApiImplicitParams({
@ApiImplicitParam(name = "name", value = "姓名"),
@ApiImplicitParam(name = "age", value = "年齡")
}) 用于多個(gè)參數(shù)字段描述

具體代碼使用如下:

/**
 * 樣線監(jiān)測(cè)數(shù)據(jù)模塊控制層
 * creater shah on 2020/02/05
 **/
@Api(value = "/api/jc_sp_line", description = "樣線監(jiān)測(cè)數(shù)據(jù)")
@RestController
@RequestMapping("/api/jc_sp_line")
public class JcSPLineController extends BaseController{
    private static Logger logger = LoggerFactory.getLogger(JcSPLineController.class);

    @Autowired
    public JcSPLineService service;


    /**
     * 根據(jù)ID查詢信息
     * @param uid
     * @return
     */
    @ApiOperation(value = "根據(jù)ID查詢信息",notes = "根據(jù)ID查詢信息")
    @RequestMapping(value = "/findAllByID", method = RequestMethod.GET)
    public Object findAllByID(String uid){
        JcSPLine bean=service.findInfoByID(uid);
        return RtnData.ok(bean);
    }

    @ApiOperation(value = "單筆刪除樣線監(jiān)測(cè)數(shù)據(jù)",notes = "單筆刪除樣線監(jiān)測(cè)數(shù)據(jù)")
    @ApiImplicitParam(name = "params", value = "UID 如:{id:'aa'}" )
    @RequestMapping(value = "/delete",method = RequestMethod.POST)
    public RtnData delete(@RequestBody Map params){
        service.delete((String) params.get("id"));
        return RtnData.ok("success");
    }

4.查看swagger生成的接口文檔
項(xiàng)目啟動(dòng)后缭嫡,訪問地址:http://localhost:9000/swagger-ui.html缔御,可以看到API文檔界面:

image.png

點(diǎn)開一個(gè)controller條目抬闷,可以看到API接口列表:
image.png

點(diǎn)開一個(gè)接口方法,可以看到接口參數(shù)詳情:
image.png

是不是很詳細(xì)耕突,是不是很方便s猿伞!眷茁!

*媽媽以后再也不用擔(dān)心我跟前端妹子吵架了炕泳,好開心!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末上祈,一起剝皮案震驚了整個(gè)濱河市培遵,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌登刺,老刑警劉巖籽腕,帶你破解...
    沈念sama閱讀 216,324評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異纸俭,居然都是意外死亡皇耗,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門揍很,熙熙樓的掌柜王于貴愁眉苦臉地迎上來郎楼,“玉大人万伤,你說我怎么就攤上這事∥卦” “怎么了敌买?”我有些...
    開封第一講書人閱讀 162,328評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)阶界。 經(jīng)常有香客問我放妈,道長(zhǎng),這世上最難降的妖魔是什么荐操? 我笑而不...
    開封第一講書人閱讀 58,147評(píng)論 1 292
  • 正文 為了忘掉前任芜抒,我火速辦了婚禮,結(jié)果婚禮上托启,老公的妹妹穿的比我還像新娘宅倒。我一直安慰自己,他們只是感情好屯耸,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,160評(píng)論 6 388
  • 文/花漫 我一把揭開白布拐迁。 她就那樣靜靜地躺著,像睡著了一般疗绣。 火紅的嫁衣襯著肌膚如雪线召。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,115評(píng)論 1 296
  • 那天多矮,我揣著相機(jī)與錄音缓淹,去河邊找鬼。 笑死塔逃,一個(gè)胖子當(dāng)著我的面吹牛讯壶,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播湾盗,決...
    沈念sama閱讀 40,025評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼伏蚊,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼格粪!你這毒婦竟也來了躏吊?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,867評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤帐萎,失蹤者是張志新(化名)和其女友劉穎比伏,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吓肋,經(jīng)...
    沈念sama閱讀 45,307評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡凳怨,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,528評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片肤舞。...
    茶點(diǎn)故事閱讀 39,688評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡紫新,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出李剖,到底是詐尸還是另有隱情芒率,我是刑警寧澤,帶...
    沈念sama閱讀 35,409評(píng)論 5 343
  • 正文 年R本政府宣布篙顺,位于F島的核電站偶芍,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏德玫。R本人自食惡果不足惜匪蟀,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,001評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望宰僧。 院中可真熱鬧材彪,春花似錦、人聲如沸琴儿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽造成。三九已至显熏,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間晒屎,已是汗流浹背喘蟆。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評(píng)論 1 268
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留夷磕,地道東北人履肃。 一個(gè)月前我還...
    沈念sama閱讀 47,685評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像坐桩,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子封锉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,573評(píng)論 2 353