1、首先是pom.xml文件加关于seagger2的maven包引入
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.6.1</version>
</dependency>
2、配置swagger2的文件,创建一个swagger2.java的一个配置类,具体内容如下:
package com.infosky.lp.common.config;
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.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class Swagger2 {
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).
select().apis(RequestHandlerSelectors.basePackage("com.mao.demo.controller")).
paths(PathSelectors.any()).build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder().title("springboot利用swagger构建api文档").
description("简单优雅的restful风格").termsOfServiceUrl("http://blog.csdn.net/forezp").
version("1.0").build();
}
}
3、项目从service、dao层等文件和没配swagger2时都没什么区别,区别主要是在controller层;
这里需要在controller接口方法上加注解,例如我的controller
package com.infosky.lp.controller;
import java.util.Optional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import com.infosky.lp.entity.User;
import com.infosky.lp.service.DemoService;
import io.swagger.annotations.ApiOperation;
@RequestMapping("/demo")
@RestController
public class DemoController {
@Autowired
DemoService demoService;
@ApiOperation(value="查询列表",notes="查询列表")
@RequestMapping(value="/{username}",method=RequestMethod.GET)
public Optional<User> getDemo(@PathVariable("username")String username) {
return demoService.findUserByName(username);
}
}
加了一个@ApiOperation(value="查询列表",notes="查询列表")注解。
以上就完成了swagger2的配置了。访问 http://localhost:8081/swagger-ui.html 即可,看下效果图如下:
到这里,swagger完成!!!
最后贴一下swagger2的其他的一些注解:
@Api:修饰整个类,用于描述controller类
@ApiOperation:描述类的方法,或者说一个接口
@ApiParam:单个参数描述
@ApiModel:用对象来接收参数
@ApiResponse:HTTP响应的一个描述
@ApiResponses:HTTP响应的整体描述
@ApiIgnore:使用该注解,表示swaggewr2忽略这个API