SpringBoot 基于swagger实现RESTfulApi风格
2017-10-24 15:02
176 查看
SpringBoot 基于swagger实现RESTfulApi风格
1、swagger概述
Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。Swagger能够实现接口API和文档保持一致性。
2、添加maven依赖
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <swagger.version>2.2.2</swagger.version> </properties> <dependencies> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>${swagger.version}</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>${swagger.version}</version> </dependency> </dependencies>
3、Swagger配置
/** * Swagger配置 * @author 陈梓平 * @date 2017/10/24. */ @Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket demoApi(){ return new Docket(DocumentationType.SWAGGER_2) .groupName("demo")//组名 .genericModelSubstitutes(DeferredResult.class)//通用的模板替代 .useDefaultResponseMessages(false)//是否使用默认响应信息 .forCodeGeneration(true)//通用编码 .pathMapping("/")// base,最终调用接口后会和paths拼接在一起 .select() .paths(or(regex("/api/.*")))//过滤的接口 .build() .apiInfo(apiInfo()); } @Bean public Docket createRestApi() { Predicate<RequestHandler> predicate = new Predicate<RequestHandler>() { @Override public boolean apply(RequestHandler requestHandler) { Class<?> declaringClass = requestHandler.getClass(); if (declaringClass == BasicErrorController.class)// 排除 return false; if(declaringClass.isAnnotationPresent(RestController.class)) // 被注解的类 return true; if(declaringClass.isAssignableFrom(ResponseBody.class)) // 被注解的方法 return true; return false; } }; return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .useDefaultResponseMessages(false) .select() .apis(predicate) .build(); } private ApiInfo apiInfo() { Contact contact = new Contact(); contact.setName("陈梓平"); contact.setUrl("http://blog.csdn.net/dushiwodecuo"); contact.setEmail("catalpaflat@outlook.com"); return new ApiInfoBuilder() .title("Electronic Health Record(EHR) Platform API")//大标题 .description("EHR Platform's REST API, all the applications could access the Object model data via JSON.")//详细描述 .version("1.0")//版本 .termsOfServiceUrl("NO terms of service") .contact("陈梓平")//作者 .license("The Apache License, Version 2.0") .licenseUrl("http://www.apache.org/licenses/LICENSE-2.0.html") .build(); } }
4、测试
4.1.配置Controller
/** * Controller * @author 陈梓平 * @date 2017/10/24. */ @Controller @RequestMapping(value = "/api") public class DemoController { private Logger logger = LoggerFactory.getLogger(DemoController.class); /** * 可以直接使用@ResponseBody响应JSON * @return */ @RequestMapping(value = "/getcount", method = RequestMethod.POST) @ApiOperation(value="测试-getCount", notes="getCount更多说明") @ResponseBody public ModelMap getCount() { logger.info(">>>>>>>> begin getCount >>>>>>>>"); ModelMap map = new ModelMap(); map.addAttribute("count", 158); // 后台获取的国际化信息 map.addAttribute("xstest", "测试"); return map; } }
4.2 测试
浏览器访问:http://localhost:8080/swagger-ui.html![](https://i.imgur.com/2dRYjyl.png)
![](https://i.imgur.com/9DrpX3m.png)
相关文章推荐
- Springboot 框架实现rest接口风格
- Spring整理系列(14)——基于注解的AspectJ风格实现spring AOP
- SpringBoot整合mybatis、shiro、redis实现基于数据库的细粒度动态权限管理系统实例
- 将JConsole移植到Eclipse平台(1)--实现基于SWT的MDI风格界面
- 基于libcurl实现REST风格http/https的get和post
- 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【四】——实现模型工厂,依赖注入以及格式配置
- Spring框架之基于Restful风格实现的SpringMVC
- 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【五】——在Web Api中实现Http方法(Put,Post,Delete)
- 基于httpClients的http请求工具类,实现restful风格的请求
- 基于 CXF 的 restful 风格的webservice 实现
- 基于主程序/子程序风格的kiwc实现
- 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【四】——实现模型工厂,依赖注入以及格式配置
- 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【六】——实现资源间的关联
- 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【六】——实现资源间的关联
- 基于卷积神经网络实现图片风格的迁移 2
- 用Node.js实现基于https的Restful风格webservice
- 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【七】——实现资源的分页
- 基于Bootstrap实现Material Design风格表单插件 附源码下载
- 基于卷积神经网络实现图片风格的迁移 3
- fast neural style transfer图像风格迁移基于tensorflow实现