技术标签: spring boot java swagger2
pom.xml:
<!-- swagger -->
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>swagger-bootstrap-ui</artifactId>
<version>1.9.6</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
config:
@Configuration
@EnableSwagger2
@EnableSwaggerBootstrapUI//加密码 -可自选
@Profile({"dev","test"})//测试环境可访问 -可自选
public class Swagger2Config {
/**
* 设置swagger跨域,提供给service调用
* @return
*/
@Bean
public WebMvcConfigurer crossConfigurer(){
WebMvcConfigurer webMvcConfigurerAdapter = new WebMvcConfigurer() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/v2/api-docs");
registry.addMapping("/**");
}
};
return webMvcConfigurerAdapter;
}
@Bean
public Docket createRestApi(){
ParameterBuilder parameterBuilder = new ParameterBuilder();
parameterBuilder.name("x-access-token").description("令牌")
.name("languageCode").description("语言")
.name("Authorization").description("token令牌")
.modelRef(new ModelRef("string")).parameterType("header").required(false).build();
ArrayList<Parameter> objects = new ArrayList<>();
objects.add(parameterBuilder.build());
return new Docket(DocumentationType.SWAGGER_2)
.select()
//基础扫描包路径
.apis(RequestHandlerSelectors.basePackage("com.xxx.controller"))
.paths(PathSelectors.any())
.build()
.globalOperationParameters(objects)
.apiInfo(apiInfo());
}
private ApiInfo apiInfo(){
return new ApiInfoBuilder()
.title("java")
.description("java项目打包成docker images并运行")
.version("1.0.0")
.build();
}
private CorsConfiguration buildConfig() {
CorsConfiguration corsConfiguration = new CorsConfiguration();
// 1允许任何域名使用
corsConfiguration.addAllowedOrigin("*");
// 2允许任何头
corsConfiguration.addAllowedHeader("*");
// 3允许任何方法(post、get等)
corsConfiguration.addAllowedMethod("*");
return corsConfiguration;
}
@Bean
public CorsFilter corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", buildConfig());
return new CorsFilter(source);
}
}
不要忘记修改基础扫描包路径
apis(RequestHandlerSelectors.basePackage("自己路径"))
当我们使用swagger,进行接口测试,担心暴露接口不安全时:
Swagger2Config 中添加注解
对swagger文档配置只在测试环境可访问,生产环境不可访问。:
@Profile({"dev","test"})
配置yml文件
在1.9.0版本时,针对Swagger的资源接口,SwaggerBootstrapUi提供了简单的Basic认证功能。
swagger:
production: false
basic:
enable: true
username: admin
password: 123456
测试环境:基于 springboot 环境下的 web项目 关于配置swagger 1.添加依赖 2.创建swagger2配置文件 如何使用swagger? 很傻瓜式的操作,在以下几个地方添加注解 @Api("讲师管理") Controller类上,主要属性有①tags(标签)②hidden(是否隐藏)③value④authorization等等 @ApiOperation(&...
引入相应的jar包 写一个swagger的配置类 编写对应的Controller 如果真正的项目编写还需要将swagger的地址设置成无须安全校验即可访问。 父工程配置类 父工程配置类之所以能够生效是因为目录结构与子工程相同,因此在执行ComponentScan时会识别到启动类同目录下或其子类下的配置类。 组件jar包引入使用解决方案 友好度从高到低排序 springboot 主动发现,配置一个r...
1,音乐库访问权限 有两种方式: 注意第一次要获取音乐的权限和数据时,要通过block的形式返回数据。因为如果没有弹出过系统的权限提示框,直接去请求数据,会弹出提示框,但提示框不是同步的,是异步的,数据已经返回了空。 所以,在获取数据前需要通过下列方式获取权限: 这样数据的返回形式需要用block方式返回。 另一种方式是进入引用后就去请求权限,在使用的地方直接判断是否有权限即可。...
1.添加Maven依赖 2.Swagger2Config配置 3.Controller源码 4.打不同环境的包 5.swagger文档地址 源码 https://gitee.com/jsjack_wang/springboot-demo dev-swagger分支...
springboot+swagger整合 为什么用swagger 为什么要用swagger,要从现在我们项目中遇到的痛点出发,目前都是前后端分离,后端同学提供api给前端同学调用,但是代码改动后api文档更新不及时,文档也可能出现错误,所以希望有个工具可以在后端写好api后自动生成api文档,swagger就是这样的工具。 pom中加入依赖 添加swaggerconfig controller中增...
Swagger简介 1、认识Swagger Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。 作用: Swagger是一组开源项目,其中主要要项目如下: Swagger-tools:提供各种与Swagger进...
添加maven依赖 添加swagger配置类 Swagger-ui的坑-接口无法展开 转载于:https://www.jianshu.com/p/f05c45a2baa3...
SpringBoot+Swagger 1. 先创建一个maven项目 在pom.xml中引入SpringBoot和swagger的依赖 2. 然后再创建一个启动类 注意主方法上的@EnableSwagger2 注解是启用swagger 3.然后创建对应的类 4.创建controller 5 最关键的一步 要找对swagger-UI的展示页面 我当时不知道。。。。。 注:我只是加的部分注解 有些注解...
添加依赖 配置Swagger 访问接口文档 http://localhost/swagger-ui.html 一些问题 接口的返回的数据得足够清晰,太多干扰信息,可能会导致接口使用者无法甄别哪些是有用的数据。...
Swagger...