Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件,它的源码地址在github上,源码地址:
具体实现操作:
一,添加依赖
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
@EnableSwagger2public 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
@SpringBootApplicationpublic 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 "删除成功"; }}