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; @Bean
public Docket createRestApi() { //添加query参数start
ParameterBuilder 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参数end return 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;
} }

4.在Controller类上添加:

@RestController
//@RequestMapping("/api/v1/order")
@RequestMapping(value = "api")
@Api("OrderFeginController相关的api")
public class OrderFeginController { @Autowired
private 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;
}
}

  

SpringBoot+Swagger整合API的更多相关文章

  1. SpringBoot+Swagger整合

    0.引言及注意事项 Swagger是一个接口文档工具,依照Swagger可以0配置开发接口.不过要注意,Swagger是基于SpringBoot1.47版本开发的,而SpringBoot现在基本都是是 ...

  2. springboot swagger 整合

    Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务. 文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步. 作用: 1.  ...

  3. SpringBoot+Swagger2 整合

    SpringBoot+Swagger2四步整合 第一步:添加相关依赖 <parent> <groupId>org.springframework.boot</groupI ...

  4. SpringBoot整合Swagger测试api构建

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

  5. springboot+mybatis-puls利用swagger构建api文档

    项目开发常采用前后端分离的方式.前后端通过API进行交互,在Swagger UI中,前后端人员能够直观预览并且测试API,方便前后端人员同步开发. 在SpringBoot中集成swagger,步骤如下 ...

  6. springboot+jpa+mysql+swagger整合

    Springboot+jpa+MySQL+swagger整合 创建一个springboot web项目 <dependencies> <dependency>      < ...

  7. SpringBoot与Swagger整合

    1 SpringBoot与Swagger整合https://blog.csdn.net/jamieblue1/article/details/99847744 2 Swagger详解(SpringBo ...

  8. springboot利用swagger构建api文档

    前言 Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件.本文简单介绍了在项目中集成swagger的方法和一些常见问题.如果想深入分析项目源码,了解更多内容,见参考资料. S ...

  9. Docker镜像仓库Harbor之Swagger REST API整合配置

    转载自:https://cloud.tencent.com/developer/article/1010618 1.Swagger 介绍 Swagger 是一个规范和完整的框架,用于生成.描述.调用和 ...

随机推荐

  1. ASP.NET Core中使用GraphQL - 第八章 在GraphQL中处理一对多关系

    ASP.NET Core中使用GraphQL - 目录 ASP.NET Core中使用GraphQL - 第一章 Hello World ASP.NET Core中使用GraphQL - 第二章 中间 ...

  2. 【朝花夕拾】Android性能篇之(八)ANR篇--草稿

    1.ANR概念 2.ANR发生场景 Android开发者官网 上说到了两个原因:(1)点击按键或者触摸屏幕等输入事件在5s内没有响应:(2)10s内没有完成广播事件.如下所示: Android wil ...

  3. Linux环境变量配置全攻略

    Linux环境变量配置 在自定义安装软件的时候,经常需要配置环境变量,下面列举出各种对环境变量的配置方法. 下面所有例子的环境说明如下: 系统:Ubuntu 14.0 用户名:uusama 需要配置M ...

  4. JAVA WEB快速入门之从编写一个基于SpringMVC框架的网站了解Maven、SpringMVC、SpringJDBC

    接上篇<JAVA WEB快速入门之通过一个简单的Spring项目了解Spring的核心(AOP.IOC)>,了解了Spring的核心(AOP.IOC)后,我们再来学习与实践Maven.Sp ...

  5. 第一册:lesson 117.

    原文:Tommy‘s breakfast. question:What' does she mean by 'change' in the last sentence. When my husband ...

  6. MySQL 笔记整理(12) --为什么我的MySQL会“抖”一下?

    笔记记录自林晓斌(丁奇)老师的<MySQL实战45讲> (本篇内图片均来自丁奇老师的讲解,如有侵权,请联系我删除) 12) --为什么我的MySQL会“抖”一下? 断更了一段时间,因为这几 ...

  7. PHP八大设计模式

    设计模式 单例模式解决的是如何在整个项目中创建唯一对象实例的问题,工厂模式解决的是如何不通过new建立实例对象的方法. 单例模式 $_instance必须声明为静态的私有变量 构造函数和析构函数必须声 ...

  8. nginx系列10:通过upstream模块选择上游服务器和负载均衡策略round-robin

    upstream模块的使用方法 1,使用upstream和server指令来选择上游服务器 这两个指令的语法如下图: 示例: 2,对上游服务使用keepalive长连接 负载均衡策略round-rob ...

  9. Sharepoint 2013搜索服务配置总结(实战)

    分享人:广州华软 星尘 一. 前言 SharePoint 2013集成了Fast搜索,相对于以前版本搜索的配置有了一些改变,在安装部署Sharepoint 2013时可以选择默认创建搜索服务,但有时候 ...

  10. 海量数据,大数据处理技术--【Hbase】