Swagger2--Springboot使用(转)

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

配置

进行代码配置

Swagger2注解介绍

在进行编写Resutful 接口时候,找寻了可以快速生成注释内容给前端或移动端进行使用对接。最后锁定了Swagger2这个利器。

配置

首先需要在pom.xml进行增加我们需要Swagger2所需要的依赖。

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 


Swagger2--Springboot使用(转)_第1张图片

图1.1

声明配置内容的配置 如图1.2 


Swagger2--Springboot使用(转)_第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定义的,根据自己定义的更换。

Swagger2--Springboot使用(转)_第3张图片

Swagger2注解介绍

注解描述

@Api修饰整个类,描述Controller的作用

@ApiOperation描述一个类的一个方法,或者说一个接口

@ApiParam单个参数描述

@ApiModel用对象来接收参数

@ApiProperty用对象接收参数时,描述对象的一个字段

@ApiResponseHTTP响应其中1个描述

@ApiResponsesHTTP响应整体描述

@ApiIgnore使用该注解忽略这个API

@ApiError发生错误返回的信息

@ApiImplicitParam一个请求参数

@ApiImplicitParams多个请求参数

你可能感兴趣的:(Swagger2--Springboot使用(转))