当前位置:   article > 正文

SpringBoot整合swagger-ui并修改访问路径_swagger-ui 修改host路径

swagger-ui 修改host路径

用该方法之前要看一下自己swagger的版本,我一开始用的时候,就是因为版本的问题而出错

这是我的maven引用

  1. <dependency>
  2. <groupId>io.springfox</groupId>
  3. <artifactId>springfox-swagger2</artifactId>
  4. <version>2.9.2</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>io.springfox</groupId>
  8. <artifactId>springfox-swagger-ui</artifactId>
  9. <version>2.9.2</version>
  10. </dependency>

 

  1. import org.springframework.beans.factory.InitializingBean;
  2. import org.springframework.beans.factory.annotation.Autowired;
  3. import org.springframework.beans.factory.annotation.Value;
  4. import org.springframework.context.annotation.Bean;
  5. import org.springframework.context.annotation.Configuration;
  6. import org.springframework.core.env.Environment;
  7. import org.springframework.core.io.ClassPathResource;
  8. import org.springframework.http.ResponseEntity;
  9. import org.springframework.stereotype.Controller;
  10. import org.springframework.web.bind.annotation.RequestMapping;
  11. import org.springframework.web.bind.annotation.RequestMethod;
  12. import org.springframework.web.bind.annotation.RequestParam;
  13. import org.springframework.web.bind.annotation.ResponseBody;
  14. import org.springframework.web.servlet.ModelAndView;
  15. import org.springframework.web.servlet.handler.SimpleUrlHandlerMapping;
  16. import org.springframework.web.servlet.resource.PathResourceResolver;
  17. import org.springframework.web.servlet.resource.ResourceHttpRequestHandler;
  18. import org.springframework.web.util.UrlPathHelper;
  19. import springfox.documentation.annotations.ApiIgnore;
  20. import springfox.documentation.builders.ApiInfoBuilder;
  21. import springfox.documentation.builders.PathSelectors;
  22. import springfox.documentation.builders.RequestHandlerSelectors;
  23. import springfox.documentation.service.ApiInfo;
  24. import springfox.documentation.spi.DocumentationType;
  25. import springfox.documentation.spring.web.DocumentationCache;
  26. import springfox.documentation.spring.web.json.Json;
  27. import springfox.documentation.spring.web.json.JsonSerializer;
  28. import springfox.documentation.spring.web.plugins.Docket;
  29. import springfox.documentation.swagger.web.ApiResourceController;
  30. import springfox.documentation.swagger.web.SecurityConfiguration;
  31. import springfox.documentation.swagger.web.SwaggerResource;
  32. import springfox.documentation.swagger.web.UiConfiguration;
  33. import springfox.documentation.swagger2.annotations.EnableSwagger2;
  34. import springfox.documentation.swagger2.mappers.ServiceModelToSwagger2Mapper;
  35. import springfox.documentation.swagger2.web.Swagger2Controller;
  36. import javax.servlet.ServletContext;
  37. import javax.servlet.http.HttpServletRequest;
  38. import java.util.Arrays;
  39. import java.util.HashMap;
  40. import java.util.List;
  41. import java.util.Map;
  42. /**
  43. * http://127.0.0.1:8080/swagger
  44. */
  45. @EnableSwagger2
  46. @Configuration
  47. public class SwaggerConfig {
  48. private static final String DEFAULT_PATH = "/swagger";
  49. /**
  50. * SwaggerUI资源访问
  51. *
  52. * @param servletContext
  53. * @param order
  54. * @return
  55. * @throws Exception
  56. */
  57. @Bean
  58. public SimpleUrlHandlerMapping swaggerUrlHandlerMapping(ServletContext servletContext,
  59. @Value("${swagger.mapping.order:10}") int order) throws Exception {
  60. SimpleUrlHandlerMapping urlHandlerMapping = new SimpleUrlHandlerMapping();
  61. Map<String, ResourceHttpRequestHandler> urlMap = new HashMap<>();
  62. {
  63. PathResourceResolver pathResourceResolver = new PathResourceResolver();
  64. pathResourceResolver.setAllowedLocations(new ClassPathResource("META-INF/resources/webjars/"));
  65. pathResourceResolver.setUrlPathHelper(new UrlPathHelper());
  66. ResourceHttpRequestHandler resourceHttpRequestHandler = new ResourceHttpRequestHandler();
  67. resourceHttpRequestHandler.setLocations(Arrays.asList(new ClassPathResource("META-INF/resources/webjars/")));
  68. resourceHttpRequestHandler.setResourceResolvers(Arrays.asList(pathResourceResolver));
  69. resourceHttpRequestHandler.setServletContext(servletContext);
  70. resourceHttpRequestHandler.afterPropertiesSet();
  71. //设置新的路径
  72. urlMap.put(DEFAULT_PATH + "/webjars/**", resourceHttpRequestHandler);
  73. }
  74. {
  75. PathResourceResolver pathResourceResolver = new PathResourceResolver();
  76. pathResourceResolver.setAllowedLocations(new ClassPathResource("META-INF/resources/"));
  77. pathResourceResolver.setUrlPathHelper(new UrlPathHelper());
  78. ResourceHttpRequestHandler resourceHttpRequestHandler = new ResourceHttpRequestHandler();
  79. resourceHttpRequestHandler.setLocations(Arrays.asList(new ClassPathResource("META-INF/resources/")));
  80. resourceHttpRequestHandler.setResourceResolvers(Arrays.asList(pathResourceResolver));
  81. resourceHttpRequestHandler.setServletContext(servletContext);
  82. resourceHttpRequestHandler.afterPropertiesSet();
  83. //设置新的路径
  84. urlMap.put(DEFAULT_PATH + "/**", resourceHttpRequestHandler);
  85. }
  86. urlHandlerMapping.setUrlMap(urlMap);
  87. //调整DispatcherServlet关于SimpleUrlHandlerMapping的排序
  88. urlHandlerMapping.setOrder(order);
  89. return urlHandlerMapping;
  90. }
  91. /**
  92. * SwaggerUI接口访问
  93. */
  94. @Controller
  95. @ApiIgnore
  96. @RequestMapping(DEFAULT_PATH)
  97. public static class SwaggerResourceController implements InitializingBean {
  98. @Autowired
  99. private ApiResourceController apiResourceController;
  100. @Autowired
  101. private Environment environment;
  102. @Autowired
  103. private DocumentationCache documentationCache;
  104. @Autowired
  105. private ServiceModelToSwagger2Mapper mapper;
  106. @Autowired
  107. private JsonSerializer jsonSerializer;
  108. private Swagger2Controller swagger2Controller;
  109. @Override
  110. public void afterPropertiesSet() {
  111. swagger2Controller = new Swagger2Controller(environment, documentationCache, mapper, jsonSerializer);
  112. }
  113. /**
  114. * 首页
  115. *
  116. * @return
  117. */
  118. @RequestMapping
  119. public ModelAndView index() {
  120. ModelAndView modelAndView = new ModelAndView("redirect:" + DEFAULT_PATH + "/swagger-ui.html");
  121. return modelAndView;
  122. }
  123. @RequestMapping("/swagger-resources/configuration/security")
  124. @ResponseBody
  125. public ResponseEntity<SecurityConfiguration> securityConfiguration() {
  126. return apiResourceController.securityConfiguration();
  127. }
  128. @RequestMapping("/swagger-resources/configuration/ui")
  129. @ResponseBody
  130. public ResponseEntity<UiConfiguration> uiConfiguration() {
  131. return apiResourceController.uiConfiguration();
  132. }
  133. @RequestMapping("/swagger-resources")
  134. @ResponseBody
  135. public ResponseEntity<List<SwaggerResource>> swaggerResources() {
  136. return apiResourceController.swaggerResources();
  137. }
  138. @RequestMapping(value = "/v2/api-docs", method = RequestMethod.GET, produces = {"application/json", "application/hal+json"})
  139. @ResponseBody
  140. public ResponseEntity<Json> getDocumentation(
  141. @RequestParam(value = "group", required = false) String swaggerGroup,
  142. HttpServletRequest servletRequest) {
  143. return swagger2Controller.getDocumentation(swaggerGroup, servletRequest);
  144. }
  145. }
  146. }

方法转自: https://blog.csdn.net/qq276726581/article/details/81135520

 

如果想加上标题之类的,下面的这些也可以放进上面的类中

  1. @Bean
  2. public Docket createRestApi() {
  3. return new Docket(DocumentationType.SWAGGER_2)
  4. .apiInfo(apiInfo())
  5. .select()
  6. //controller的目录
  7. .apis(RequestHandlerSelectors.basePackage("com.swagger.api"))
  8. .paths(PathSelectors.any())
  9. .build();
  10. }
  11. //用来创建该Api的基本信息(这些基本信息会展现在文档页面中)
  12. private ApiInfo apiInfo() {
  13. return new ApiInfoBuilder()
  14. .title("swagger")
  15. .description("http://www.baidu.com/")
  16. .termsOfServiceUrl("http://www.baidu.com/")
  17. .version("1.0")
  18. .build();
  19. }

 

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/857000
推荐阅读
相关标签
  

闽ICP备14008679号