------------恢复内容开始------------

1.创建SpringBoot项目

2.选择快捷方式创建springboot项目

3.工程文件树形图

4.pom.xml中导入Swagger依赖

代码如下:

 1        <dependency>
2 <groupId>io.springfox</groupId>
3 <artifactId>springfox-swagger2</artifactId>
4 <version>2.9.2</version>
5 </dependency>
6 <dependency>
7 <groupId>io.springfox</groupId>
8 <artifactId>springfox-swagger-ui</artifactId>
9 <version>2.9.2</version>
10 </dependency>

5.配置Swagger信息

代码如下:

 1 package com.example.dell;
2
3 import org.springframework.context.annotation.Bean;
4 import org.springframework.context.annotation.Configuration;
5 import springfox.documentation.builders.ApiInfoBuilder;
6 import springfox.documentation.builders.PathSelectors;
7 import springfox.documentation.builders.RequestHandlerSelectors;
8 import springfox.documentation.service.Contact;
9 import springfox.documentation.spi.DocumentationType;
10 import springfox.documentation.spring.web.plugins.Docket;
11 import springfox.documentation.swagger2.annotations.EnableSwagger2;
12
13 /**
14 * @program:swagger2-demo
15 * @description:swagger配置类
16 * @author:feixiang
17 * @create:2020/5/14
18 */
19
20 @Configuration
21 @EnableSwagger2
22 public class Swagger2Config {
23 @Bean
24 public Docket createRestApi() {
25 return new Docket(DocumentationType.SWAGGER_2)
26 .pathMapping("/")
27 .select()
28 .apis(RequestHandlerSelectors.basePackage("com.example.dell.web"))
29 .paths(PathSelectors.any())
30 .build().apiInfo(new ApiInfoBuilder()
31 .title("飞翔用接口自动化平台")
32 .description("飞翔独享")
33 .version("9.0")
34 .contact(new Contact("马化腾","blog.csdn.net","aaa@gmail.com"))
35 .license("The Apache License")
36 .licenseUrl("http://www.baidu.com")
37 .build());
38 }
39 }

创建接口

接下来就是创建接口了,Swagger2相关的注解其实并不多,而且很容易懂,下面我来分别向小伙伴们举例说明

代码如下

 1 package com.example.dell.web;
2
3 import com.example.dell.pojo.User;
4 import io.swagger.annotations.ApiImplicitParam;
5 import io.swagger.annotations.ApiImplicitParams;
6 import io.swagger.annotations.ApiOperation;
7 import org.springframework.web.bind.annotation.*;
8 import io.swagger.annotations.Api;
9 import org.springframework.web.bind.annotation.PathVariable;
10 import org.springframework.web.bind.annotation.RequestBody;
11 import org.springframework.web.bind.annotation.RequestMapping;
12 import org.springframework.web.bind.annotation.RestController;
13
14
15
16 @RestController
17 @Api(tags = "用户管理相关接口")
18 @RequestMapping("/user")
19 public class UserController{
20 @PostMapping("/")
21 @ApiOperation("添加用户的接口")
22 @ApiImplicitParams({
23 @ApiImplicitParam(name = "username", value = "用户名", defaultValue = "张三"),
24 @ApiImplicitParam(name = "address", value = "用户地址", defaultValue = "佛山", required = true)
25 }
26 )
27 public RespBean addUser(String username, @RequestParam(required = true) String address) {
28 return new RespBean();
29 }
30
31 @GetMapping("/")
32 @ApiOperation("根据id查询用户的接口")
33 @ApiImplicitParam(name = "id", value = "用户id", defaultValue = "99", required = true)
34 public User getUserById(@PathVariable Integer id) {
35 User user = new User();
36 user.setId(id);
37 return user;
38 }
39 @PutMapping("/{id}")
40 @ApiOperation("根据id更新用户的接口")
41 public User updateUserById(@RequestBody User user) {
42 return user;
43 }
44 }

这里边涉及到多个API,我来向小伙伴们分别说明:

@Api注解可以用来标记当前Controller的功能。
@ApiOperation注解用来标记一个方法的作用。
@ApiImplicitParam注解用来描述一个参数,可以配置参数的中文含义,也可以给参数设置默认值,这样在接口测试的时候可以避免手动输入。
如果有多个参数,则需要使用多个@ApiImplicitParam注解来描述,多个@ApiImplicitParam注解需要放在一个@ApiImplicitParams注解中。
需要注意的是,@ApiImplicitParam注解中虽然可以指定参数是必填的,但是却不能代替@RequestParam(required = true),前者的必填只是在Swagger2框架内必填,抛弃了Swagger2,这个限制就没用了,所以假如开发者需要指定一个参数必填,@RequestParam(required = true)注解还是不能省略。
如果参数是一个对象(例如上文的更新接口),对于参数的描述也可以放在实体类中。例如下面一段代码:

 1 package com.example.dell.pojo;
2
3 import io.swagger.annotations.ApiModelProperty;
4
5
6
7
8 public class User {
9 @ApiModelProperty(value = "用户id")
10 private Integer id;
11 @ApiModelProperty(value = "用户名")
12 private String username;
13 @ApiModelProperty(value = "用户地址")
14 private String address;
15 //getter/setter
16
17 public Integer getId() {
18 return id;
19 }
20
21 public void setId(Integer id) {
22 this.id = id;
23 }
24
25 public String getUsername() {
26 return username;
27 }
28
29 public void setUsername(String username) {
30 this.username = username;
31 }
32
33 public String getAddress() {
34 return address;
35 }
36
37 public void setAddress(String address) {
38 this.address = address;
39 }
40 }

代码如下:

 1 package com.example.dell.web;
2
3 import io.swagger.annotations.ApiModelProperty;
4
5 public class RespBean {
6 @ApiModelProperty(value = "用户id")
7 private Integer id;
8 @ApiModelProperty(value = "用户名")
9 private String username;
10 @ApiModelProperty(value = "用户地址")
11 private String address;
12 //getter/setter
13
14 public Integer getId() {
15 return id;
16 }
17
18 public void setId(Integer id) {
19 this.id = id;
20 }
21
22 public String getUsername() {
23 return username;
24 }
25
26 public void setUsername(String username) {
27 this.username = username;
28 }
29
30 public String getAddress() {
31 return address;
32 }
33
34 public void setAddress(String address) {
35 this.address = address;
36 }
37 }

然后启动,运行

此时启动项目,输入http://localhost:8080/swagger-ui.html,能够看到如下页面,说明已经配置成功了:

最新文章

  1. 深入理解图优化与g2o:g2o篇
  2. sql中case when语句的使用-来自网摘文章
  3. (temp)catch ip
  4. CEGUI0.8.4引入到自己工程中
  5. Hibernate 一对多 保存和修改数据
  6. JSONModel 遇见关键字为id或者description
  7. 为Android游戏接入第三方登录功能
  8. 【HDOJ】3007 Buried memory
  9. 【贪心】【模拟】HDU 5491 The Next (2015 ACM/ICPC Asia Regional Hefei Online)
  10. NHibernate教程(7)--并发控制
  11. 【最小生成树】UVA1494Qin Shi Huang&#39;s National Road System秦始皇修路
  12. python http请求类
  13. solr中重建索引(转)
  14. Chapter1:Qt概念
  15. Linux学习之路-2017/12/22
  16. array_multisort函数,以及多维数组下排序的应用,并与usort函数对比
  17. Android安装器学习笔记(一)
  18. yii2 高级版新建一个应用(api应用为例子)
  19. j2ee高级开发技术课程第二周(web请求的整个过程、XML)
  20. UIAlertAction 改变字体颜色

热门文章

  1. JVM相关总结
  2. 前端实现电子签名(web、移动端)通用组件
  3. Python学习的第三次的总结
  4. redhat安装opencv2.4.13
  5. shell脚本变量加减
  6. 【小白必经之路:玩转STL】array容器
  7. spark之依赖关系
  8. 【文献阅读】Automatic berthing for an underactuated unmanned surface vehicle: A real-time motion planning approach
  9. 从零搭建hadoop集群之节点间免密登录
  10. 回溯-1-N皇后(Backtracking-1-N Queens)