Swagger-UI与Spring Cloud整合与安全设置
2017-08-26 00:00
393 查看
swagger ui是一个API在线文档生成和测试的利器,在某种程度上可以媲美常用的postman,网上有很多它的整合教程,但是没有考虑到安全问题,下面是它的整合流程。
1、maven依赖:
2、启动主类添加注解
3、创建Swagger2类放在与启动主类同一目录下
4、Swagger配置路径重定向(不加这个类会报错)
5、添加注解
·常规添加
·参数上添加
·展开bean对象参数
·忽略bean自定义参数说明显示
·直接在bean中添加参数说明
说明:
@ApiModel(value = “用户信息”) 解释实体bean
@ApiModelProperty(value = “用户id”, required = true) 解释属性
6、配置完成,访问API页面
7、整合spring Security实现访问API页面输入用户名密码
1、maven依赖:
<!-- Swagger --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.6.1</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.6.1</version> </dependency>
2、启动主类添加注解
@EnableWebMvc
3、创建Swagger2类放在与启动主类同一目录下
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import com.google.common.base.Predicates; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.service.ApiInfo; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; /** * * @Title: Swagger设置类 * @Package com.lovnx.charge * @author yezhiyuan * @date 2017年5月10日 上午9:45:55 * @version V1.0 */ @Configuration @ComponentScan(basePackages = { "com.lovnx.*.controller.*" })//配置controller路径 @EnableSwagger2 @SuppressWarnings({"unchecked","deprecation"}) public class Swagger2 { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() .paths(Predicates.or( //这里添加你需要展示的接口 PathSelectors.ant("/account/**"), PathSelectors.ant("/xxx/**"), PathSelectors.ant("/qqq/**"), PathSelectors.ant("/eee/**") ) ) .build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("API平台名字") .description("说明RESTful APIs") .contact("xxx@qq.com") .version("1.0") .build(); } }
4、Swagger配置路径重定向(不加这个类会报错)
import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; /** * * @Title: Swagger配置路径重定向 * @Package com.config * @author yezhiyuan * @date 2017年5月10日 上午9:45:16 * @version V1.0 */ @Configuration public class SwaggerWebMvcConfig extends WebMvcConfigurerAdapter { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("swagger-ui.html") .addResourceLocations("classpath:/META-INF/resources/"); registry.addResourceHandler("/webjars/**") .addResourceLocations("classpath:/META-INF/resources/webjars/"); } }
5、添加注解
·常规添加
类上添加:@Api(description="这个controller是干嘛的") 方法上添加:@ApiOperation(value="这个方法是干嘛的", notes="详细注释")
·参数上添加
@RequestMapping(value = "/add", method = RequestMethod.POST) @ApiOperation(value = "添加用户", notes = "增加用户") public Result<UserVo> add( @ApiParam(name = "token", value = "token",required = true) @RequestParam(name = "token", required = true) String token, @ApiParam(name = "userName",value = "用户昵称",required = true) @RequestParam(name = "userName",required = true) String userName, @ApiParam(name = "mobile",value = "手机",required = true) @RequestParam(name = "mobile",required = true) String mobile) {
·展开bean对象参数
public Ret<FileSimpleListRetDTO> simpleList(@Validated @ModelAttribute FileSimpleListDTO fileSimpleQueryDTO) {//..}
·忽略bean自定义参数说明显示
@ApiOperation(value = "更新员工信息", notes = "更新员工信息", response = SwaggerSimpleResultConstant.class) @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "主键ID", required = true, paramType = "path"), @ApiImplicitParam(name = "name", value = "姓名", required = true, paramType = "query")}) @RequestMapping(value = "/{id}", method = { RequestMethod.PUT }) public Map<ControllerResultConstant, Object> edit(@ApiIgnore Employee employee) {
·直接在bean中添加参数说明
@ApiModel(value = "用户信息") public class UserVo { @ApiModelProperty(value = "用户id", required = true) private long userId; @ApiModelProperty(value = "昵称", required = true) private long userName;
说明:
@ApiModel(value = “用户信息”) 解释实体bean
@ApiModelProperty(value = “用户id”, required = true) 解释属性
6、配置完成,访问API页面
http://localhost:服务端口/swagger-ui.html
7、整合spring Security实现访问API页面输入用户名密码
maven依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> 配置文件添加: security.basic.path=/swagger-ui.html security.basic.enabled=true security.user.name=lovnx security.user.password=123456
相关文章推荐
- Swagger-UI与Spring Cloud整合与安全设置
- spring-cloud 整合swagger2时启动报错没有发现controller的接口bean
- springcloud整合swagger 界面查看restful api
- Spring+SpringMVC+MyBatis+easyUI整合进阶篇(十一)redis密码设置、安全设置
- Spring+SpringMVC+MyBatis+easyUI整合进阶篇(十一)redis密码设置、安全设置
- Spring boot+Shiro+ spring MVC+swagger UI +Mybatis+mysql+Vue +Element UI 之四 vue 整合Element UI
- spring cloud zuul 整合 swagger 聚合分布式系统文档
- spring cloud整合swagger,通过zuul路由
- Spring boot+Shiro+ spring MVC+swagger UI +Mybatis+mysql+Vue +Element UI 之一vue和spring boot整合
- (四)整合spring cloud云服务架构 - HongHu企业分布式微服务云架构
- spring-boot整合redis作为缓存(1)——redis的设置
- Spring + MyBatis + JQuery Easy UI 整合案例
- 整合spring cloud云架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)
- Swagger+Spring+Spring Mvc项目整合DEMO
- Spring Cloud Spring Boot mybatis分布式微服务云架构(十三)使用Spring Security安全控制
- 多种方式解决spring boot swagger ui使用 nginx 部署后无法使用问题
- SpringCloud系列四:Eureka 服务发现框架(定义 Eureka 服务端、Eureka 服务信息、Eureka 发现管理、Eureka 安全配置、Eureka-HA(高可用) 机制、Eureka 服务打包部署)
- SpringBoot整合Swagger
- 【Spring Cloud】spring boot搭建+swagger-ui
- 【Spring Cloud】spring boot搭建+swagger-ui