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下

springmvc 配置swagger ui 生成接口文档

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页面能看到所有的接口了。



哈哈,有什么问题可以直接联系我哦。