Spring boot整合Springfox生成restful的在線api文檔
Springfox是什么,有什么用?
Springfox基于Swagger,能更方便的集成到spring boot 中,Swagger 是一個(gè)規(guī)范和完整的框架,用于生成、描述、調(diào)用和可視化 RESTful 風(fēng)格的 Web 服務(wù)。Swagger的目標(biāo)是對(duì)REST API定義一個(gè)標(biāo)準(zhǔn)的和語(yǔ)言無(wú)關(guān)的接口,可讓人和計(jì)算機(jī)無(wú)需訪問(wèn)源碼、文檔或網(wǎng)絡(luò)流量監(jiān)測(cè)就可以發(fā)現(xiàn)和理解服務(wù)的能力。當(dāng)通過(guò)Swagger進(jìn)行正確定義,用戶可以理解遠(yuǎn)程服務(wù)并使用最少實(shí)現(xiàn)邏輯與遠(yuǎn)程服務(wù)進(jìn)行交互。與為底層編程所實(shí)現(xiàn)的接口類似,Swagger消除了調(diào)用服務(wù)時(shí)可能會(huì)有的猜測(cè)。
Springfox官方文檔:http://springfox.github.io/springfox/docs/snapshot/
Springfox的依賴
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.4.0</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.4.0</version> </dependency>
Springfox的配置
@Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket demoApi() { return new Docket(DocumentationType.SWAGGER_2) .groupName("demo") .genericModelSubstitutes(DeferredResult.class) .useDefaultResponseMessages(false) .forCodeGeneration(false) //.pathMapping("/") //根路徑 .select() .paths(PathSelectors.regex("/user/.*"))//篩選展示的接口,使用PathSelectors.any(),展示所有接口 .build() .apiInfo(demoApiInfo()) ; } //api信息 private ApiInfo demoApiInfo() { ApiInfo apiInfo = new ApiInfo("自己平臺(tái)的api",//大標(biāo)題 "swagger搭建api平臺(tái)",//小標(biāo)題 "1.0",//版本 "NO terms of service", "632104866@qq.com",//作者 "這是我的技術(shù)博客站點(diǎn)",//鏈接顯示文字 "http://www.kailing.pub"http://網(wǎng)站鏈接 ); return apiInfo; } }
測(cè)試的Controll
@RestController @RequestMapping("/user") public class SwaggerDemoController { @RequestMapping(value = "/demo2",method = RequestMethod.POST) @ApiOperation(value="測(cè)試接口1", notes="測(cè)試接口詳細(xì)描述") @ResponseBody ModelMap getDemo(@RequestBody User user) { ModelMap map = new ModelMap(); map.addAttribute("userId", 111); map.addAttribute("userName", "kl博客"); return map; } @ResponseBody @RequestMapping(value = "/demo3", method = RequestMethod.POST) @ApiOperation(value="測(cè)試接口2", notes="測(cè)試接口詳細(xì)描述",code = 200,produces = "application/json") public ModelMap getDemoa(@RequestParam("name") String demoName, @RequestParam String content) { ModelMap map = new ModelMap(); map.addAttribute("result",demoName + "AAA"); return map; } @ResponseBody @ApiIgnore //使用這個(gè)注解忽略這個(gè)接口 @RequestMapping(value = "/demo4", method = RequestMethod.POST) public ModelMap getDemob(@RequestParam String content) { ModelMap map = new ModelMap(); map.addAttribute("result",new java.util.Date()); return map; } }
在瀏覽器輸入http://localhost:8080/swagger-ui.html,可查看是否整合成功
至此我們的額api在線文檔整合完成了,下面是效果圖
以上就是Spring boot整合Springfox生成restful的在線api文檔的詳細(xì)內(nèi)容,更多關(guān)于Spring boot整合Springfox生成restful在線api的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
淺談靜態(tài)變量、成員變量、局部變量三者的區(qū)別
下面小編就為大家?guī)?lái)一篇淺談靜態(tài)變量、成員變量、局部變量三者的區(qū)別。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-09-09Java使用多線程批次查詢大量數(shù)據(jù)(Callable返回?cái)?shù)據(jù))方式
今天給大家分享Java使用多線程批次查詢大量數(shù)據(jù)(Callable返回?cái)?shù)據(jù))方式,多線程有好幾種方式,今天說(shuō)的方式比較好,實(shí)現(xiàn)Callable<> 這種方式能返回查詢的數(shù)據(jù),加上Future異步獲取方式,查詢效率大大加快,感興趣的朋友一起看看吧2023-11-11Sentinel Dashboard限流規(guī)則保存方式
這篇文章主要介紹了Sentinel Dashboard限流規(guī)則保存方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06Java使用開(kāi)源Rxtx實(shí)現(xiàn)串口通訊
這篇文章主要為大家詳細(xì)介紹了Java使用開(kāi)源Rxtx實(shí)現(xiàn)串口通訊,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12PostConstruct注解標(biāo)記類ApplicationContext未加載空指針
這篇文章主要為大家介紹了@PostConstruct注解標(biāo)記類ApplicationContext未加載空指針示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11spring boot加載資源路徑配置和classpath問(wèn)題解決
這篇文章主要介紹了spring boot加載資源路徑配置和classpath問(wèn)題解決,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-03-03使用MyBatis查詢千萬(wàn)級(jí)數(shù)據(jù)量操作實(shí)現(xiàn)
這篇文章主要為大家介紹了如何使用MyBatis?查詢千萬(wàn)數(shù)據(jù)量的操作過(guò)程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05