https://blog.csdn.net/qq_15807167/article/details/81011942
Swagger2--Springboot使用
2018年07月12日 10:55:04 喜欢雨天的我 阅读数:279
版权声明:商业用途请联系博主,非商业转载请标明出处。https://blog.csdn.net/qq_15807167/article/details/81011942
在进行编写Resutful 接口时候,找寻了可以快速生成注释内容给前端或移动端进行使用对接。最后锁定了Swagger2这个利器。
首先需要在pom.xml进行增加我们需要Swagger2所需要的依赖。
<!-- Swagger 接口文档 -->io.springfoxspringfox-swagger22.9.2io.springfoxspringfox-swagger-ui2.9.2
1
2
3
4
5
6
7
8
9
10
11
接下来需要在 Application中进行声明@EnableSwagger2如图1.1
图1.1
声明配置内容的配置 如图1.2
图1.2
代码如下:
@Configurationpublic class Swagger { @Bean public Docket controllerApi() { return new Docket(DocumentationType.SWAGGER_2).apiInfo(new ApiInfoBuilder().title("xx公司_xx项目_接口文档").description("描述内容")//.contact("候帅").version("2.0.0").build()).select().apis(RequestHandlerSelectors.basePackage("controller所在的包")).paths(PathSelectors.any()).build();}}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
进行标记对应的注释:
@RestController@Api("测试api")publicclassUserController{// 创建线程安全的MapstaticMap users = Collections.synchronizedMap(newHashMap());/** * 根据ID查询用户 * @paramid * @return*/@ApiOperation(value="获取用户详细信息", notes="根据url的id来获取用户详细信息")@ApiImplicitParam(name ="id", value ="用户ID", required =true, dataType ="Integer", paramType ="path")@RequestMapping(value ="user/{id}", method = RequestMethod.GET)publicResponseEntitygetUserById(@PathVariable(value ="id") Integer id){ JsonResult r =newJsonResult();try{ User user = users.get(id); r.setResult(user); r.setStatus("ok"); }catch(Exception e) { r.setResult(e.getClass().getName() +":"+ e.getMessage()); r.setStatus("error"); e.printStackTrace(); }returnResponseEntity.ok(r); }/** * 查询用户列表 * @return*/@ApiOperation(value="获取用户列表", notes="获取用户列表")@RequestMapping(value ="users", method = RequestMethod.GET)publicResponseEntitygetUserList(){ JsonResult r =newJsonResult();try{ List userList =newArrayList(users.values()); r.setResult(userList); r.setStatus("ok"); }catch(Exception e) { r.setResult(e.getClass().getName() +":"+ e.getMessage()); r.setStatus("error"); e.printStackTrace(); }returnResponseEntity.ok(r); }/** * 添加用户 * @paramuser * @return*/@ApiOperation(value="创建用户", notes="根据User对象创建用户")@ApiImplicitParam(name ="user", value ="用户详细实体user", required =true, dataType ="User")@RequestMapping(value ="user", method = RequestMethod.POST)publicResponseEntityadd(@RequestBody User user){ JsonResult r =newJsonResult();try{ users.put(user.getId(), user); r.setResult(user.getId()); r.setStatus("ok"); }catch(Exception e) { r.setResult(e.getClass().getName() +":"+ e.getMessage()); r.setStatus("error"); e.printStackTrace(); }returnResponseEntity.ok(r); }/** * 根据id删除用户 * @paramid * @return*/@ApiOperation(value="删除用户", notes="根据url的id来指定删除用户")@ApiImplicitParam(name ="id", value ="用户ID", required =true, dataType ="Long", paramType ="path")@RequestMapping(value ="user/{id}", method = RequestMethod.DELETE)publicResponseEntitydelete(@PathVariable(value ="id") Integer id){ JsonResult r =newJsonResult();try{ users.remove(id); r.setResult(id); r.setStatus("ok"); }catch(Exception e) { r.setResult(e.getClass().getName() +":"+ e.getMessage()); r.setStatus("error"); e.printStackTrace(); }returnResponseEntity.ok(r); }/** * 根据id修改用户信息 * @paramuser * @return*/@ApiOperation(value="更新信息", notes="根据url的id来指定更新用户信息")@ApiImplicitParams({@ApiImplicitParam(name ="id", value ="用户ID", required =true, dataType ="Long",paramType ="path"),@ApiImplicitParam(name ="user", value ="用户实体user", required =true, dataType ="User") })@RequestMapping(value ="user/{id}", method = RequestMethod.PUT)publicResponseEntityupdate(@PathVariable("id") Integer id, @RequestBody User user){ JsonResult r =newJsonResult();try{ User u = users.get(id); u.setUsername(user.getUsername()); u.setAge(user.getAge()); users.put(id, u); r.setResult(u); r.setStatus("ok"); }catch(Exception e) { r.setResult(e.getClass().getName() +":"+ e.getMessage()); r.setStatus("error"); e.printStackTrace(); }returnResponseEntity.ok(r); }@ApiIgnore//使用该注解忽略这个API@RequestMapping(value ="/hi", method = RequestMethod.GET)publicStringjsonTest() {return" hi you!"; }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
在编写完后,我们进行运行我们的项目后可以访问http://localhost:8080/swagger-ui.html 进行访问Swagger2的相关内容。注意:端口号为server.port定义的,根据自己定义的更换。
注解描述
@Api修饰整个类,描述Controller的作用
@ApiOperation描述一个类的一个方法,或者说一个接口
@ApiParam单个参数描述
@ApiModel用对象来接收参数
@ApiProperty用对象接收参数时,描述对象的一个字段
@ApiResponseHTTP响应其中1个描述
@ApiResponsesHTTP响应整体描述
@ApiIgnore使用该注解忽略这个API
@ApiError发生错误返回的信息
@ApiImplicitParam一个请求参数
@ApiImplicitParams多个请求参数