Swagger与SpringMVC项目整合
来源:互联网 发布:ce6.7源码 编辑:程序博客网 时间:2024/06/05 19:32
为了方便的管理项目中API接口,在网上找了好多关于API接口管理的资料,感觉目前最流行的莫过于Swagger了,功能强大,UI界面漂亮,并且支持在线测试等等,所以本人仔细研究了下Swagger的使用,下面就如何将Swagger与个人的SpringMVC项目进行整合做详细说明:
最终API管理界面:
详细步骤:
Step1:项目中引入相关jar包:
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
<properties>
<project.build.sourceencoding>UTF-
8
</project.build.sourceencoding>
<version.spring>
3.2
.
9
.RELEASE</version.spring>
<version.jackson>
2.4
.
4
</version.jackson>
</properties>
<dependencies>
....
<dependency>
<groupid>com.mangofactory</groupid>
swagger-springmvc</artifactid>
<version>
0.9
.
5
</version>
</dependency>
<dependency>
<groupid>com.fasterxml.jackson.core</groupid>
jackson-annotations</artifactid>
<version>${version.jackson}</version>
</dependency>
<dependency>
<groupid>com.fasterxml.jackson.core</groupid>
jackson-databind</artifactid>
<version>${version.jackson}</version>
</dependency>
<dependency>
<groupid>com.fasterxml.jackson.core</groupid>
jackson-core</artifactid>
<version>${version.jackson}</version>
</dependency>
</dependencies>
Step2:添加自定义config文件
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
package
com.spg.apidoc.common.configer;
import
org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.context.annotation.Bean;
import
org.springframework.context.annotation.Configuration;
import
com.mangofactory.swagger.configuration.SpringSwaggerConfig;
import
com.mangofactory.swagger.models.dto.ApiInfo;
import
com.mangofactory.swagger.plugin.EnableSwagger;
import
com.mangofactory.swagger.plugin.SwaggerSpringMvcPlugin;
/**
* 项目名称:apidoc
*
* @description:
* @author Wind-spg
* @create_time:2015年2月10日 上午10:27:51
* @version V1.0.0
*
*/
@Configuration
@EnableSwagger
// Loads the spring beans required by the framework
public
class
MySwaggerConfig
{
private
SpringSwaggerConfig springSwaggerConfig;
/**
* Required to autowire SpringSwaggerConfig
*/
@Autowired
public
void
setSpringSwaggerConfig(SpringSwaggerConfig springSwaggerConfig)
{
this
.springSwaggerConfig = springSwaggerConfig;
}
/**
* Every SwaggerSpringMvcPlugin bean is picked up by the swagger-mvc
* framework - allowing for multiple swagger groups i.e. same code base
* multiple swagger resource listings.
*/
@Bean
public
SwaggerSpringMvcPlugin customImplementation()
{
return
new
SwaggerSpringMvcPlugin(
this
.springSwaggerConfig).apiInfo(apiInfo()).includePatterns(
.*?);
}
private
ApiInfo apiInfo()
{
ApiInfo apiInfo =
new
ApiInfo(
My Apps API Title,
My Apps API Description,
My Apps API terms of service,
My Apps API Contact Email,
My Apps API Licence Type,
My Apps API License URL);
return
apiInfo;
}
}
Step3:将此配置加入到Spring容器中,如下:
1
<bean
class
=
"com.spg.apidoc.common.configer.MySwaggerConfig"
></bean>
Step4:在代码中添加相关APIAnnotation,如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@ResponseBody
@RequestMapping
(
value = addUser, method = RequestMethod.POST, produces = application/json; charset=utf-
8
)
@ApiOperation
(value = 添加用户, httpMethod = POST, response = BaseResultVo.
class
, notes = add user)
public
String addUser(
@ApiParam
(required =
true
, name = postData, value = 用户信息json数据)
@RequestParam
(
value = postData) String postData, HttpServletRequest request)
{
LOGGER.debug(String.format(at function, %s, postData));
if
(
null
== postData || postData.isEmpty())
{
return
super
.buildFailedResultInfo(-
1
, post data is empty!);
}
UserInfo user = JSON.parseObject(postData, UserInfo.
class
);
int
result = userService.addUser(user);
return
buildSuccessResultInfo(result);
}
说明:
其中@ApiOperation和@ApiParam为添加的API相关注解,个参数说明如下:
@ApiOperation(value = “接口说明”, httpMethod = “接口请求方式”, response = “接口返回参数类型”, notes = “接口发布说明”;其他参数可参考源码;
@ApiParam(required = “是否必须参数”, name = “参数名称”, value = “参数具体描述”
Step5:添加Swagger UI配置
在GitHub上下载SwaggerUI项目,将dist下所有内容拷贝到本地项目webapp下面,结果目录如下图所示:
Step6:修改index.html:
将index.html中http://petstore.swagger.wordnik.com/v2/swagger.json修改为http://localhost:8080/{projectname}/api-docs
到此为止,所有配置完成,启动你的项目,访问http://localhost:8080/{projectName}/index.html即可看到如下所示页面:
0 0
- Swagger与SpringMVC项目整合
- Swagger与SpringMVC项目整合
- Swagger与SpringMVC项目整合
- Swagger与SpringMVC项目整合
- Swagger与SpringMVC项目整合
- Swagger与SpringMVC项目整合
- Swagger与SpringMVC项目整合
- Swagger与SpringMVC项目整合
- Swagger与SpringMVC项目整合
- Swagger与SpringMVC项目整合
- Swagger与SpringMVC项目整合
- Swagger与SpringMVC项目整合
- SpringMVC与Swagger整合
- SpringMVC与Swagger整合
- Swagger与SpringMVC整合
- SpringMVC与Swagger 整合
- Swagger SpringMVC整合与简介
- swagger与springMVC、maven整合
- 美团点击下单率预测问题(以数据清洗与特征处理为主)
- 堆和栈的区别是什么?
- caffe代码阅读6:Filler的实现细节-2016.3.18
- assets目录下资源使用方法
- 深入浅出Python(中文版) 下载地址
- Swagger与SpringMVC项目整合
- Python -- 获取文件所在目录和文件名
- 为什么手机充电这么慢?别用错数据线
- 编译错误—Linux 配置文件要区分大小写
- boost
- 利用sqoop将hive和mysql数据互导简单实验
- NLTK查看
- 第六天、打渔晒网问题
- 使用docker快速构建rails开发环境