Swagger 是一款RESTFUL接口的文檔在線自動生成+功能測試功能軟件,它的源碼地址在github上,源碼地址:https://github.com/swagger-api/swagger-ui
具體實現操作:
一,添加依賴
Swagger需要依賴兩個jar包,在pom.xml中添加如下坐標
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.2.2</version>
</dependency>
二,創建配置類
Swagger需要一個配置類來進行對swagger的基本配置
配置類:
@Configuration
@EnableSwagger2
public class Swagger2 {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
//選擇controller包
.apis(RequestHandlerSelectors.basePackage("com.shsxt.controller"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
//自定義信息可按需求填寫
.title("Spring Boot中使用Swagger構建RESTful APIs")
.description("測試")
.termsOfServiceUrl("http://www.duanxiaowei.top")
.contact("劉林林")
.version("1.0")
.build();
}
}
啟動類:
@Controller
@SpringBootApplication
public class Application implements CommandLineRunner {
@Autowired
private User user;
public static void main(String[] args) throws Exception {
SpringApplication.run(Application.class, args);
}
@Override
public void run(String... strings) throws Exception {
System.out.println(user.getUserId());
}
}
三,啟動並訪問
啟動application 並訪問http://localhost:8088/swagger-ui.html
四,額外配置(非必需)
最常用的5個注解 主要用來對接口或參數做備注信息
@Api:修飾整個類,描述Controller的作用
@ApiOperation:描述一個類的一個方法,或者說一個接口
@ApiParam:單個參數描述
@ApiModel:用對象來接收參數
@ApiProperty:用對象接收參數時,描述對象的一個字段
@Api(value="用戶模塊")
@RestController
@RequestMapping("user")
public class UserController {
@Autowired
private UserService userService;
@ApiOperation(value = "根據用戶id查詢用戶")
@GetMapping("find/{id}")
public User findById(@PathVariable Integer id) {
User user = userService.findById(id);
return user;
}
@ApiOperation(value = "修改用戶信息")
@PutMapping("update")
public String update(User user) {
return "更新成功";
}
@ApiOperation(value = "添加用戶")
@PostMapping("add")
public String add( User user) {
return "添加成功";
}
@ApiOperation(value = "刪除用戶")
@DeleteMapping("delete/{id}")
public String delete(
@ApiParam(required=true, name="ID", value="編號")
@PathVariable Integer id) {
return "刪除成功";
}
}