springmvc 配置swagger ui 生成接口文档
swagger version :1.0.2
1.pom.xml
<dependency> <groupId>com.mangofactory</groupId> <artifactId>swagger-springmvc</artifactId> <version>1.0.2</version> </dependency> <dependency> <groupId>com.mangofactory</groupId> <artifactId>swagger-models</artifactId> <version>1.0.2</version> </dependency> <dependency> <groupId>com.wordnik</groupId> <artifactId>swagger-annotations</artifactId> <version>1.3.11</version> </dependency> <!-- swagger-springmvc dependencies --> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>15.0</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.4.4</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.4.4</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.4.4</version> </dependency> <dependency> <groupId>com.fasterxml</groupId> <artifactId>classmate</artifactId> <version>1.1.0</version> </dependency>2,配置swaggerconfig
SwaggerConfig
@EnableWebMvc @Configuration @EnableSwagger public class SwaggerConfig { @Autowired private SpringSwaggerConfig springSwaggerConfig; @Bean public SwaggerSpringMvcPlugin customImplementation() { return new SwaggerSpringMvcPlugin(this.springSwaggerConfig).apiInfo(apiInfo()).includePatterns(".*?"); } private ApiInfo apiInfo() { ApiInfo apiInfo = new ApiInfo("My Apps API Title", "My Apps API Description", "My Apps API terms of service", "[email protected]", "My Apps API Licence Type", "My Apps API License URL"); return apiInfo; } }有的不需要下边那个注解
@EnableWebMvc
3,到github上下载swagger-ui.git包,将dist拷贝出来,webapp下
4,改index.html中的url路径
var url = window.location.search.match(/url=([^&]+)/); if (url && url.length > 1) { url = decodeURIComponent(url[1]); } else { url="http://localhost:8888/xxx/api-docs"; // url = "http://petstore.swagger.io/v2/swagger.json"; }5,可选:写一个controller测试
@Controller @RequestMapping("/user") public class SuserController { @Autowired private CustomerService userService; /** * 根据用户名获取用户对象 */ @RequestMapping(value = "/getUserByUserName/{name}", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "根据用户名获取用户对象", httpMethod = "GET", response = ApiResult.class, notes = "根据用户名获取用户对象") public ApiResult getUserByName(@ApiParam(required = true, name = "name", value = "用户名") @PathVariable int name) throws Exception { Customer user = userService.get(name); if (user != null) { ApiResult result = new ApiResult(); result.setCode(0); result.setMessage("success"); result.setData(user); return result; } else { throw new Exception("根据{name=" + name + "}获取不到User对象"); } } }
6,如果配置了dispatchservlet的拦截路径时/*,或*.html或*.json的话,将url-mapping改为/,否则会swagger UI 页面展示不出来。当然你也可以用其他办法走*.html.
7,启动项目,你就会看到你的swagger UI页面能看到所有的接口了。
哈哈,有什么问题可以直接联系我哦。