如何使用Spring MVC與springfox-swagger2搭建一個(gè)restful API?針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。
古塔網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)公司于2013年開(kāi)始到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。
前言
在集成springfox-swagger2之前,我也嘗試著集成了swagger-springmvc,方式差不多,但是swagger-springmvc相對(duì)麻煩一點(diǎn),因?yàn)橐阉撵o態(tài)文件copy到自己的項(xiàng)目中。
方法如下
這里先寫(xiě)下需要的pom.xml配置(我引用的2.4.0,相對(duì)穩(wěn)定)
<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>
還需要在spring-mvc.xml中添加映射靜態(tài)的配置:
<mvc:default-servlet-handler />
然后就是swagger2的配置類:
package com.xingguo.logistics.swagger; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; import springfox.documentation.service.Contact; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; @Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket buildDocket(){ return new Docket(DocumentationType.SWAGGER_2) .apiInfo(buildApiInf()) .select() .apis(RequestHandlerSelectors.basePackage("com.xingguo.logistics.controller"))//controller路徑 .paths(PathSelectors.any()) .build(); } private ApiInfo buildApiInf(){ return new ApiInfoBuilder() .title("xingguo大標(biāo)題") .termsOfServiceUrl("http://blog.csdn.net/u014231523網(wǎng)址鏈接") .description("springmvc swagger2") .contact(new Contact("diaoxingguo", "http://blog.csdn.net/u014231523", "diaoxingguo@163.com")) .build(); } }
然后運(yùn)行項(xiàng)目,輸入自己的url。
http://{ip}:{port}/{projectname}/swagger-ui.html#/
我的url:
http://localhost:8989/logistics/swagger-ui.html#/
然后就可以看到效果圖:
它會(huì)把按照controller,把所有的接口都加載進(jìn)來(lái)。
我的目錄結(jié)構(gòu)如圖:
然后,就是接口名稱和參數(shù)的說(shuō)明:
常用注解:
- @Api()
用于類名
- @ApiOperation()
用于方法名
- @ApiParam()
用于參數(shù)說(shuō)明
- @ApiModel()
用于實(shí)體類
- @ApiModelProperty
用于實(shí)體類屬性
更詳細(xì)的說(shuō)明請(qǐng)參見(jiàn)官方注解說(shuō)明文檔
使用方法如圖:
@Controller //類上使用@Api @Api(value="用戶controller",description="用戶相關(guān)操作") public class UserController { @RequestMapping(value="index",method=RequestMethod.POST) //方法上使用@ApiOperation @ApiOperation(value="首頁(yè)",notes="跳轉(zhuǎn)到首頁(yè)") //參數(shù)使用@ApiParam public Object getIndex(@ApiParam(name="topic實(shí)體",value="json格式",required=true) @RequestBody Topic topic){ //業(yè)務(wù)內(nèi)容,被我刪除了,請(qǐng)忽略,主要看上面的注解 Object obj = new Object(); return obj; } }
//一般添加個(gè)@ApiModel()就可以,看情況使用里面的屬性 @ApiModel(value="Topic", discriminator = "foo", subTypes = {Topic.class}) public class Topic{ }
效果圖如下:
我在springboot中也集成了swagger2,集成方式基本相同,使用方式也基本一樣。請(qǐng)參考Spring Boot集成springfox-swagger2構(gòu)建restful API的方法教程
關(guān)于如何使用Spring MVC與springfox-swagger2搭建一個(gè)restful API問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。
文章題目:如何使用SpringMVC與springfox-swagger2搭建一個(gè)restfulAPI
文章地址:http://chinadenli.net/article40/ppipeo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、云服務(wù)器、定制開(kāi)發(fā)、小程序開(kāi)發(fā)、Google、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)