springboot中使用swagger2構建restful介面文件
阿新 • • 發佈:2018-12-10
最近幾年網際網路專案、移動應用越來越多,不同於之前的企業內部應用,該類專案通常就是好幾個應用互相呼叫,我們一般會使用word或者excel來記錄介面的相應描述,但是這樣會有一些問題,比如更新困難,不易管理。
Swagger 是一款RESTFUL介面的文件線上自動生成+功能測試功能軟體,它既能解決幫我們自動生成介面文件,並且還能線上除錯。
記錄下在springboot中swagger的使用
1、新增依賴
<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、編寫配置類
import org.springframework.context.annotation.Bean; 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.service.Contact; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; @Configuration @EnableSwagger2 public class Swagger2 { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("com.demo.controller")) .paths(PathSelectors.any()) .build(); } private ApiInfo apiInfo() { Contact contact=new Contact("meepoguan","http://blog.csdn.net/u011890101","郵箱地址"); return new ApiInfoBuilder() .title("介面文件") .description("測試介面") .termsOfServiceUrl("測試介面") .contact(contact) .version("1.0") .build(); } }
3、編寫實體類
public class User implements Serializable{ /** * */ private static final long serialVersionUID = 3221700752972709820L; private int id; private String name; private int age; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public User(int id, String name, int age) { super(); this.id = id; this.name = name; this.age = age; } }
4、編寫restful介面
@RestController
@RequestMapping("users")
public class UserController {
@ApiOperation(value="獲取使用者列表")
@GetMapping
public String list() {
//TODO 查詢操作
return "";
}
@ApiOperation(value="新增使用者",notes="填寫物件建立使用者")
@ApiImplicitParam(name="user",value="實體user",required=true,dataType="User")
@PostMapping
public String saveUser(@RequestBody User user) {
//TODO 新增操作
return "";
}
@ApiOperation(value="更新使用者",notes="根據id指定物件,並根據傳來的物件進行更新")
@ApiImplicitParams({
@ApiImplicitParam(name="id",value="使用者id",required=true,dataType="String"),
@ApiImplicitParam(name="user",value="使用者實體物件",required=true,dataType="User")
})
@PutMapping(value="{id}")
public String updateuser(@PathVariable String id) {
//TODO 更新使用者
return "";
}
@ApiOperation(value="刪除使用者")
@ApiImplicitParam(name="id",value="使用者id",required=true,dataType="String")
@DeleteMapping(value="id")
public String deleteUser(@PathVariable String id) {
//TODO 刪除使用者
return "";
}
}
執行專案,輸入http://localhost:8080/swagger-ui.html
如果能看到該頁面,則證明整合成功了。