SpringBoot 基于swagger实现RESTfulApi风格
来源:互联网 发布:安卓网络聊天室破解版 编辑:程序博客网 时间:2024/05/16 05:27
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@EnableSwagger2public 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
阅读全文
0 0
- SpringBoot 基于swagger实现RESTfulApi风格
- springboot + swagger
- springboot + swagger
- springboot swagger
- Swagger+SpringBoot
- SpringBoot+SpringSecurity+JWT实RESTfulAPI权限控制
- SpringBoot集成Swagger
- springboot整合swagger
- springboot中集成swagger
- 【Spring Boot】springboot + swagger
- Swagger配置(SpringMVC、SpringBoot)
- springboot + swagger 注解
- Swagger搭配Springboot使用
- springboot + swagger注解
- SpringBoot 集成Swagger
- springboot整合swagger
- SpringBoot集成Swagger
- SpringBoot整合Swagger
- 谈一谈iOS中的多线程
- Drawerlayout侧滑菜单
- MQTT--入门(二)
- Spring Boot 内嵌Tomcat的端口号的修改
- lucene7.1.0 (三) 索引的curd
- SpringBoot 基于swagger实现RESTfulApi风格
- 微信公众平台测试账号的注册与申请
- (二十四)Java设计模式之解释器模式
- 原生js支持的编码转换方法
- redis
- mysql重新忘记root密码
- y
- OpenCV 3.0中IplImage* 转cv::Mat
- http协议下的post、get理解