1.首先建立SpringBoot项目,导入swagger2所用的依赖
<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.建立一个swagge2注册类
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; /*** * @ClassName: swagger2注册类 * @Description: s * @Auther: ywang * @Date: 15:03 2019/3/25 * @version : V1.0 */ @Configuration @EnableSwagger2 public class Swagger2Config { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() //为当前包路径 .apis(RequestHandlerSelectors.basePackage("com.example.web")) .paths(PathSelectors.any()) .build(); } //构建 api文档的详细信息函数 private ApiInfo apiInfo() { return new ApiInfoBuilder() //页面标题 .title("Spring Boot 测试使用 Swagger2 构建RESTful API") //创建人 .contact(new Contact("yw", "http://www.baidu.com", "yw@163.com")) //版本号 .version("1.0") //描述 .description("API 描述") .build(); } }
3.建立实体类
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; /*** * @ClassName: User * @Description: 用户实体类 * @Auther: ywang * @Date: 14:03 2019/3/25 * @version : V1.0 */ @ApiModel(description="用户对象user") public class User { @ApiModelProperty(value="id",example="1") private Long id; @ApiModelProperty(value="姓名",example="张三") private String name; @ApiModelProperty(value="年龄",example="23") private Integer age; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } }
4.建立一个controller
import java.util.*; import com.example.domain.User; import io.swagger.annotations.*; import org.springframework.web.bind.annotation.*; /*** * @ClassName: UserController * @Description: 程序入口类 * @Auther: ywang * @Date: 14:04 2019/3/25 * @version : V1.0 */ @Api(value="用户controller",tags={"用户操作接口"}) @RestController @RequestMapping(value="/users") // 通过这里配置使下面的映射都在/users下,可去除 public class UserController { static Map<Long, User> users = Collections.synchronizedMap(new HashMap<Long, User>()); /** * @Param [] * @Description: TODO * @auther: ywang * @date: 14:07 2019/3/25 * @return: java.util.List<com.example.domain.User> */ @ApiOperation(value="获取用户列表", notes="获取所有的用户列表") @RequestMapping(value={""}, method=RequestMethod.GET) public List<User> getUserList() { List<User> r = new ArrayList<User>(users.values()); return r; } @ApiOperation(value="创建用户", notes="根据User对象创建用户") @ApiImplicitParam(name = "user", value = "用户详细实体user", required = true, dataType = "User") @RequestMapping(value="", method=RequestMethod.POST) public String postUser(@RequestBody User user) { users.put(user.getId(), user); return "success"; } @ApiOperation(value="获取用户详细信息", notes="根据url的id来获取用户详细信息") @ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "Long", paramType = "path") @RequestMapping(value="/{id}", method=RequestMethod.GET) public User getUser(@PathVariable Long id) { return users.get(id); } @ApiOperation(value="更新用户详细信息", notes="根据url的id来指定更新对象,并根据传过来的user信息来更新用户详细信息") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "Long", paramType = "path"), @ApiImplicitParam(name = "user", value = "用户详细实体user", required = true, dataType = "User") }) @RequestMapping(value="/{id}", method=RequestMethod.PUT) public String putUser(@PathVariable Long id, @RequestBody User user) { User u = users.get(id); u.setName(user.getName()); u.setAge(user.getAge()); users.put(id, u); return "success"; } @ApiOperation(value="删除用户", notes="根据url的id来指定删除对象") @ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "Long", paramType = "path") @RequestMapping(value="/{id}", method=RequestMethod.DELETE) public String deleteUser(@PathVariable Long id) { users.remove(id); return "success"; } }
5.测试
启动项目,http://localhost:8080/swagger-ui.html
SpringBoot 整合swageer2 生成RestFul API文档
原文:https://www.cnblogs.com/aizj/p/10594075.html