Swagger与SpringMVC的整合
2015-10-10 18:30
435 查看
Swagger可视化API,不仅能查看API,还能测试1.引入相关JAR
<dependency> <groupId>com.mangofactory</groupId> <artifactId>swagger-springmvc</artifactId> <version>1.0.2</version> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.9.13</version> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-core-asl</artifactId> <version>1.9.13</version> </dependency>
2.在启动类中加入Swagger相关代码(用的springboot):
@EnableSwaggerpublic class AppServiceApplication {public static void main(String[] args) {SpringApplication application = new SpringApplication(AppServiceApplication.class);Set<Object> sourcesSet = new HashSet<Object>();sourcesSet.add("classpath:applicationContext.xml");application.setSources(sourcesSet);application.run(args);}private SpringSwaggerConfig springSwaggerConfig;/*** Required to autowire SpringSwaggerConfig*/@Autowiredpublic 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.*/@Beanpublic SwaggerSpringMvcPlugin customImplementation() {return new SwaggerSpringMvcPlugin(this.springSwaggerConfig).apiInfo(apiInfo()).includePatterns(".*?");}private ApiInfo apiInfo() {ApiInfo apiInfo = new ApiInfo("App Service API","","","huqc@gcks.cn","","");return apiInfo;}
3.在代码中添加相关APIAnnotation,如下:
<span style="font-size:18px;background-color: rgb(255, 255, 255);">@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);}</span>说明:其中@ApiOperation和@ApiParam为添加的API相关注解,个参数说明如下:@ApiOperation(value = “接口说明”, httpMethod = “接口请求方式”, response = “接口返回参数类型”, notes = “接口发布说明”;其他参数可参考源码;@ApiParam(required = “是否必须参数”, name = “参数名称”, value = “参数具体描述”4.添加Swagger UI配置在GitHub上下载SwaggerUI项目,将dist下所有内容拷贝到本地项目webapp下面,结果目录如下图所示:修改index.html将index.html中http://petstore.swagger.wordnik.com/v2/swagger.json修改为http://localhost:8080/{projectname}/api-docs到此为止,所有配置完成,启动你的项目,访问http://localhost:8086/swagger/index.html即可看到如下所示页面:
相关文章推荐
- Spring学习笔记(十):@Autowired和new的区别
- Java单例设计模式
- Java中对已有的Set进行排序问题
- spring 初始化之后执行的方法
- java.lang.NoClassDefFoundError: org/aopalliance/intercept/MethodInterceptor
- Java中ZIP与Gzip的压缩与解压处理,其中有Base64处理
- java学习日记----------------------封装的日期类MyDate
- java核心技术之reflect(一):一个系统学习reflect的Demo(精)
- Java语音SDK接口开发经验及具体开发实现
- Servlet与一般Java类的区别是什么?
- java 代理模式
- JAVA操作Excel文件 JXL
- java ReentrantLock可重入锁功能
- 基础学习--调试/intellij快捷键
- 在 Java 应用程序中访问 USB 设备
- 使用Java对数据库进行基本的查询和更新操作
- java基础
- 虚拟机操作---JDK与Hadoop的安装
- java如何获取当前时间的方法汇总
- java二叉树 TreeMap集合测试