spring boot 使用swagger
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                spring boot 使用swagger
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                在pom.xml中添加maven依賴
<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.7.0</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.7.0</version>剛開始我用的2.8.0版本,后來折騰了好久,swagger頁面就是不出來。換成2.7.0就好了。也許你折騰半天,換個版本就好了。
添加Swagger配置類:
package com.test.configuration;import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import io.swagger.annotations.ApiOperation; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2;/** *Swagger2配置類 */@Configuration @EnableSwagger2//啟用Swagger2 public class Swaggers {@Beanpublic Docket createRestApi(){return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))//掃描所有有注解的api .paths(PathSelectors.any()).build();}/*** 首頁描述* @return*/private ApiInfo apiInfo(){return new ApiInfoBuilder().title("電話外呼api文檔").description("rest接口").build();} }?
添加controller類
package com.text.crm.callout.controller;import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import org.springframework.beans.factory.annotation.Autowired; import com.text.callout.model.WarnCallOut; import com.text.callout.service.WarnCallOutService;@RestController @RequestMapping("/warn") @Api(tags="電話外呼信息保存接口") public class WarnCallOutController{@Autowiredprivate WarnCallOutService warnCallOutService;/***@param WarnCallOut電話外呼對象*@return*/@ApiOperation("保存電話外呼信息")@RequestMapping(value = "/add",method=RequestMethod.POST)public String addWarnCallOut(WarnCallOut warnCallOut){return warnCallOutService.addWarnCallOut(warnCallOut);} }?添加POJO類
package com.test.entity;import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty;@ApiModel("電話外呼對象") public class WarnCallOut {@ApiModelProperty(value="序號,從1開始",hidden=true)private Long id;@ApiModelProperty(value="姓名",required=true)private String name;@ApiModelProperty(value="需要外乎的號碼,本地號碼加9,外地號碼加90,多個號碼用|隔開,如913800000000|9013900000000",required=true)private String phonenum;@ApiModelProperty(value="操作時間,如2018-12-06 22:00:00",required=true)private String requesttime;public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPhonenum() {return phonenum;}public void setPhonenum(String phonenum) {this.phonenum = phonenum;}public String getRequesttime() {return requesttime;}public void setRequesttime(String requesttime) {this.requesttime = requesttime;} }運行啟動類,啟動Spring Boot程序,訪問:http://localhost:8080/swagger-ui.html
?
?
?
如果你的沒有成功。可以試試把配置類改成如下:
package com.test.configuration;import io.swagger.annotations.ApiOperation;import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.util.UriComponentsBuilder;import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.spring.web.paths.Paths; import springfox.documentation.spring.web.paths.AbstractPathProvider; import springfox.documentation.swagger2.annotations.EnableSwagger2;import java.util.List; import org.springframework.web.servlet.config.annotation.*; import org.springframework.format.FormatterRegistry; import org.springframework.http.converter.HttpMessageConverter; import org.springframework.validation.MessageCodesResolver; import org.springframework.validation.Validator; import org.springframework.web.method.support.HandlerMethodArgumentResolver; import org.springframework.web.method.support.HandlerMethodReturnValueHandler; import org.springframework.web.servlet.HandlerExceptionResolver; import org.springframework.web.context.request.async.DeferredResult;/** *Swagger2配置類 */@Configuration @EnableSwagger2//啟用Swagger2,生產環境記得注釋掉 public class Swaggers implements WebMvcConfigurer{@Beanpublic Docket createRestApi(){return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))//掃描所有有注解的api .paths(PathSelectors.any()).build();}/*** 首頁描述* @return*/private ApiInfo apiInfo(){return new ApiInfoBuilder().title("電話外呼api文檔").description("rest接口").build();}/***重寫BASE URL*/class BasePathAwareRalativePathProvider extends AbstractPathProvider{private String basePath;public BasePathAwareRalativePathProvider(String basePath){this.basePath=basePath;}@Overrideprotected String applicationPath(){return basePath;}@Overrideprotected String getDocumentationPath(){return "/";}@Overridepublic String getOperationPath(String OperationPath){UriComponentsBuilder uriComponentsBuilder=UriComponentsBuilder.fromPath("/");return Paths.removeAdjacentForwardSlashes(uriComponentsBuilder.path("").build().toString());}}@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry){registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");};/*** 跨域支持* @param corsRegistry*/@Overridepublic void addCorsMappings(CorsRegistry corsRegistry){corsRegistry.addMapping("/**").allowedOrigins("*").allowCredentials(true).allowedMethods("GET","POST","PUT","DELETE").allowedHeaders("*");}@Overridepublic void configurePathMatch(PathMatchConfigurer pathMatchConfigurer){}@Overridepublic void configureContentNegotiation(ContentNegotiationConfigurer contentNegotiationConfigurer){}@Overridepublic void configureAsyncSupport(AsyncSupportConfigurer asyncSupportConfigurer){};@Overridepublic void configureDefaultServletHandling(DefaultServletHandlerConfigurer defaultServletHandlerConfigurer){};@Overridepublic void addFormatters(FormatterRegistry formatterRegistry){};@Overridepublic void addInterceptors(InterceptorRegistry interceptorRegistry){};@Overridepublic void addViewControllers(ViewControllerRegistry viewControllerRegistry){};@Overridepublic void configureViewResolvers(ViewResolverRegistry viewResolverRegistry){};@Overridepublic void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers){};@Overridepublic void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> returnValueHandlers){};@Overridepublic void configureMessageConverters(List<HttpMessageConverter<?>> converters){};@Overridepublic void extendMessageConverters(List<HttpMessageConverter<?>> converters){};@Overridepublic void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> exceptionResolvers){};@Overridepublic void extendHandlerExceptionResolvers(List<HandlerExceptionResolver> exceptionResolvers){};@Overridepublic Validator getValidator(){return null;}@Overridepublic MessageCodesResolver getMessageCodesResolver(){return null;} }還是不行的話,
請下載這個demo :?springboot-swagger2-demo? ? ? ? 下載好解壓然后eclipse導入MAVEN項目? 直接就能運行。
轉載于:https://www.cnblogs.com/Alwaysbecoding/p/10077508.html
總結
以上是生活随笔為你收集整理的spring boot 使用swagger的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: MQ消息队列产品测试
- 下一篇: 手工注入流程
