SpringBoot+Swagger整合API
SpringBoot+Swagger整合API
Swagger:整合规范的api,有界面的操作,测试
1.在pom.xml加入swagger依赖
<!--整合Swagger2配置类--><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.9.2</version></dependency>
2.在application.yml开启swagger
#引入swagger
swagger:enable: true
3.配置SwaggerConfiguration.java
注意:@Value("${swagger2.basePackage:com.spingcloud.serviceconsumer.controller}") 添加扫描的api入口
@Configuration @EnableSwagger2 public class SwaggerConfiguration {@Value("${swagger2.basePackage:com.spingcloud.serviceconsumer.controller}")private String swagger2BasePackage;@Value("${swagger2.title:系统API文档}")private String swagger2Title;@Value("${swagger2.api.version:2.0}")private String apiVersion;@Beanpublic Docket createRestApi() {//添加query参数startParameterBuilder tokenPar = new ParameterBuilder();List<Parameter> pars = new ArrayList<Parameter>(); // tokenPar.name("token").description("令牌").modelRef(new ModelRef("string")).parameterType("query").required(true).build(); pars.add(tokenPar.build());//添加query参数endreturn new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.basePackage(swagger2BasePackage)).paths(PathSelectors.any()).build() // .globalOperationParameters(pars)//添加验证 // .securitySchemes(securitySchemes()) // .securityContexts(securityContexts())//添加验证 ;}private ApiInfo apiInfo() {return new ApiInfoBuilder().title(swagger2Title).version(apiVersion).build();}private List<ApiKey> securitySchemes() {List<ApiKey> apiKeyList= new ArrayList();apiKeyList.add(new ApiKey("token", "令牌", "header"));return apiKeyList;}private List<SecurityContext> securityContexts() {List<SecurityContext> securityContexts=new ArrayList<>();securityContexts.add(SecurityContext.builder().securityReferences(defaultAuth()).forPaths(PathSelectors.regex("^(?!auth).*$")).build());return securityContexts;}List<SecurityReference> defaultAuth() {AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];authorizationScopes[0] = authorizationScope;List<SecurityReference> securityReferences=new ArrayList<>();securityReferences.add(new SecurityReference("Authorization", authorizationScopes));return securityReferences;}}
View Code
4.在Controller类上添加:
@RestController //@RequestMapping("/api/v1/order") @RequestMapping(value = "api") @Api("OrderFeginController相关的api") public class OrderFeginController {@Autowiredprivate ProductOrderFeginService productOrderFeginService;//限流:对外提供一个服务接口,允许最大并发数为10 // private final Semaphore permit = new Semaphore(4, true);//当调用微服务出现异常会降级到saveOrderFail方法中@HystrixCommand(fallbackMethod = "saveOrderFail")@RequestMapping(value = "/saveorder",method = RequestMethod.GET)@ApiOperation(value = "根据id查询商品信息", notes = "查询数据库中某个的商品信息")@ApiImplicitParams({@ApiImplicitParam(name = "user_id",paramType = "query", value = "用户ID", required = true),@ApiImplicitParam(name = "product_id",value = "商品ID",required = true,paramType = "query",dataType = "string")})public Object saveorder(@RequestParam("user_id")int userId, @RequestParam("product_id") int productId) throws InterruptedException {return productOrderFeginService.saveorder(userId, productId);}//注意,方法签名一定要要和api方法一致private Object saveOrderFail(int userId, int productId){System.out.println("controller中的降级方法");Map<String, Object> msg = new HashMap<>();msg.put("code", -1);msg.put("msg", "抢购人数太多,您被挤出来了,稍等重试");return msg;} }
View Code
转载于:https://www.cnblogs.com/ningshare/p/10711123.html
SpringBoot+Swagger整合API相关推荐
- SpringBoot整合Swagger测试api构建
@Author:SimpleWu 什么是Swagger? Swagger是什么:THE WORLD'S MOST POPULAR API TOOLING 根据官网的介绍: Swagger Inspec ...
- Spring Boot 整合Swagger实现API管理
Spring Boot 整合Swagger实现API管理 1 Swagger介绍 根据官网的介绍: https://swagger.io Swagger 是一款RESTFUL接口的.基于YAML.JS ...
- SpringBoot——SpringBoot集成Swagger生成API文档
文章目录: 1.写在前面 2.步骤详解 2.1 pom文件中添加Swagger依赖 2.2 在application.properties核心配置文件中配置Swagger 2.3 编写需要生成API文 ...
- GeoTrellis 尝试(springboot + swagger + spark + GeoTrellis)
原始使用springboot + spark 整合在一起做了一个通过请求来驱动spark计算的demo工程,最近看了下GeoSpark,Geotrellis,GeoMeca关于GIS方面的大数据相关技 ...
- 【SpringBoot】22、SpringBoot中整合knife4j接口文档
在项目开发中,web项目的前后端分离开发,APP开发,需要由前后端工程师共同定义接口,编写接口文档,之后大家都根据这个接口文档进行开发,到项目结束前都要一直维护 接口文档使得项目开发过程中前后端工程师 ...
- springboot+security整合(1)
说明 springboot 版本 2.0.3 源码地址:点击跳转 系列 springboot+security 整合(1) springboot+security 整合(2) springboot+s ...
- knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案
knife4j knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案,前身是swagger-bootstrap-ui,取名kni4j是希望它能像一把匕首一样小巧,轻量, ...
- SpringBoot项目整合Retrofit最佳实践,这才是最优雅的HTTP客户端工具!
作者:六点半起床 juejin.im/post/6854573211426750472 大家都知道okhttp是一款由square公司开源的java版本http客户端工具.实际上,square公司还开 ...
- SpringBoot 2 整合 Spring Session 最简操作
SpringBoot 2 整合 SpringSession 前言 Spring Session 介绍 SpringBoot 快速整合 Spring Session Spring Session 测试 ...
最新文章
- 云+社区小程序知识周,等你来挑战!
- 1 张图,拆解阿里 P8高级架构师必会技术栈!
- linux ls mv,Linux基本命令总结一(ls,cp,rm,mv,mkdir,rmdir,cd)
- c语言 五子棋 悔棋代码,跪求C语言五子棋悔棋部分实现
- 中国无碳复写纸行业竞争现状与运行态势研究报告2022年
- MDSF:LOP-使用MPS来做个计算器的示例
- mysql sqlsugar_.net core +mysqlSugar(最为简单的增删改查)
- cent os mysql图形界面_cent os 6.4安装使用mysql
- Redis连接的客户端(connected_clients)数过高或者不减的问题解决方案
- ACM程序设计基础题解
- 17年北邮计算机应用基础,2017计算机应用基础考试题及答案
- [Python] 探索性编程与idleX
- C语言实现乘法原理,伽罗华乘法原理与C语言实现
- Instrument初识
- Android 添加GridView中图片的圆角样式
- 慧荣SM3271AD芯片U盘量产
- 容斥原理解决某个区间[1,n]闭区间与m互质数数量问题
- vue的三种传值方式:父传子,子传父,子传子
- C语言----白细胞计数
- 软件需求分析报告 -机票预订系统
热门文章
- django2.0实现数据详情页展示的流程
- webmagic框架
- 挖一挖C#中那些我们不常用的东西之系列(2)——IsXXX 系列方法
- 【转载】二分图最大匹配的König定理及其证明 Matrix67原创
- AtomicReference原子性引用
- 2017python windows 客户端最新版本3.6.2安装教程
- 关于人工智能的实现(猜测)
- Silverlight实用窍门系列:71.Silverlight的Style
- Educational Codeforces Round 24
- Vs2010创建WebService