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相关推荐

  1. SpringBoot整合Swagger测试api构建

    @Author:SimpleWu 什么是Swagger? Swagger是什么:THE WORLD'S MOST POPULAR API TOOLING 根据官网的介绍: Swagger Inspec ...

  2. Spring Boot 整合Swagger实现API管理

    Spring Boot 整合Swagger实现API管理 1 Swagger介绍 根据官网的介绍: https://swagger.io Swagger 是一款RESTFUL接口的.基于YAML.JS ...

  3. SpringBoot——SpringBoot集成Swagger生成API文档

    文章目录: 1.写在前面 2.步骤详解 2.1 pom文件中添加Swagger依赖 2.2 在application.properties核心配置文件中配置Swagger 2.3 编写需要生成API文 ...

  4. GeoTrellis 尝试(springboot + swagger + spark + GeoTrellis)

    原始使用springboot + spark 整合在一起做了一个通过请求来驱动spark计算的demo工程,最近看了下GeoSpark,Geotrellis,GeoMeca关于GIS方面的大数据相关技 ...

  5. 【SpringBoot】22、SpringBoot中整合knife4j接口文档

    在项目开发中,web项目的前后端分离开发,APP开发,需要由前后端工程师共同定义接口,编写接口文档,之后大家都根据这个接口文档进行开发,到项目结束前都要一直维护 接口文档使得项目开发过程中前后端工程师 ...

  6. springboot+security整合(1)

    说明 springboot 版本 2.0.3 源码地址:点击跳转 系列 springboot+security 整合(1) springboot+security 整合(2) springboot+s ...

  7. knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案

    knife4j knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案,前身是swagger-bootstrap-ui,取名kni4j是希望它能像一把匕首一样小巧,轻量, ...

  8. SpringBoot项目整合Retrofit最佳实践,这才是最优雅的HTTP客户端工具!

    作者:六点半起床 juejin.im/post/6854573211426750472 大家都知道okhttp是一款由square公司开源的java版本http客户端工具.实际上,square公司还开 ...

  9. SpringBoot 2 整合 Spring Session 最简操作

    SpringBoot 2 整合 SpringSession 前言 Spring Session 介绍 SpringBoot 快速整合 Spring Session Spring Session 测试 ...

最新文章

  1. 云+社区小程序知识周,等你来挑战!
  2. 1 张图,拆解阿里 P8高级架构师必会技术栈!
  3. linux ls mv,Linux基本命令总结一(ls,cp,rm,mv,mkdir,rmdir,cd)
  4. c语言 五子棋 悔棋代码,跪求C语言五子棋悔棋部分实现
  5. 中国无碳复写纸行业竞争现状与运行态势研究报告2022年
  6. MDSF:LOP-使用MPS来做个计算器的示例
  7. mysql sqlsugar_.net core +mysqlSugar(最为简单的增删改查)
  8. cent os mysql图形界面_cent os 6.4安装使用mysql
  9. Redis连接的客户端(connected_clients)数过高或者不减的问题解决方案
  10. ACM程序设计基础题解
  11. 17年北邮计算机应用基础,2017计算机应用基础考试题及答案
  12. [Python] 探索性编程与idleX
  13. C语言实现乘法原理,伽罗华乘法原理与C语言实现
  14. Instrument初识
  15. Android 添加GridView中图片的圆角样式
  16. 慧荣SM3271AD芯片U盘量产
  17. 容斥原理解决某个区间[1,n]闭区间与m互质数数量问题
  18. vue的三种传值方式:父传子,子传父,子传子
  19. C语言----白细胞计数
  20. 软件需求分析报告 -机票预订系统

热门文章

  1. django2.0实现数据详情页展示的流程
  2. webmagic框架
  3. 挖一挖C#中那些我们不常用的东西之系列(2)——IsXXX 系列方法
  4. 【转载】二分图最大匹配的König定理及其证明 Matrix67原创
  5. AtomicReference原子性引用
  6. 2017python windows 客户端最新版本3.6.2安装教程
  7. 关于人工智能的实现(猜测)
  8. Silverlight实用窍门系列:71.Silverlight的Style
  9. Educational Codeforces Round 24
  10. Vs2010创建WebService