工程目录结构:
首先,引入jar包,只需要以下两个即可
<dependency> <groupId></groupId> <artifactId>springfox-swagger2</artifactId> <version>2.4.0</version> </dependency> <dependency> <groupId></groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.4.0</version> </dependency>
1、Swagger配置类
package ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ..EnableSwagger2; @Configuration @EnableSwagger2 public class Swagger2 { //swagger2的配置文件,这里可以配置swagger2的一些基本的内容,比如扫描的包等等 @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() //为当前包路径 .apis(RequestHandlerSelectors.basePackage("")) .paths(()) .build(); } //构建 api文档的详细信息函数,注意这里的注解引用的是哪个 private ApiInfo apiInfo() { return new ApiInfoBuilder() //页面标题 .title("Spring Boot 测试使用 Swagger2 构建RESTful API") //创建人 .contact(new Contact("WangXiaodong", "", "")) //版本号 .version("1.0") //描述 .description("API 描述") .build(); } }
注意修改:basePackage("接口所在controller的包路径")
2、实体类
接口接收入参为json串,需由实体类转化为对应key-value
package ; public class User { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "User [name=" + name + "]"; } }
3、接口所在Controller
package ; import ; import ; import ; import ; import ; import ; import ; import ; import ; @RestController @RequestMapping("/hello") @Api(value = "/hello") public class SwagController { @ApiOperation(value = "查询用户", notes = "查询用户") @ApiImplicitParams({@ApiImplicitParam(name = "name", value = "姓名", required = true, dataType = "String"), }) @RequestMapping(value = "/getName",method=) @ResponseBody public User getName(@RequestBody User name) { System.out.println(()); return name; } }
通过@RequestBody注解,将接收到的json参数,转化为实体类User对应的值
4、SpringBoot启动类
虽然大家都知道,还是来一个吧
package ; import ; import ; import ..EnableSwagger2;
@SpringBootApplication public class Application { public static void main(String[] args) { (Application.class, args); } }
测试
输入地址:localhost:8080/swagger-ui.html
如下所示:出现刚才写的接口
点击SHow/Hide
1、/hello/getName:路径
2、Model:入参json对应的model,就是上面的User
3、填写要传入的参数(json格式)
传入参数:
{ "name": "WangXiaodong" }
测试结果: