当前位置: 首页 > wzjs >正文

做网站需要看啥书可以免费领取会员的软件

做网站需要看啥书,可以免费领取会员的软件,网站怎么盈利的,市场策划Knife4j 接口文档添加登录验证流程是非常必要的&#xff0c;否则接口文档一旦暴露到外面是很危险的&#xff0c;今天我们详细分析一下。在1.9.6的版本时&#xff0c;作者把swagger-bootstrap-ui项目重命名为Knife4j&#xff0c;今天分析2.0.6版本。 1、pom.xml文件引入 <pa…

Knife4j 接口文档添加登录验证流程是非常必要的,否则接口文档一旦暴露到外面是很危险的,今天我们详细分析一下。在1.9.6的版本时,作者把swagger-bootstrap-ui项目重命名为Knife4j,今天分析2.0.6版本。

1、pom.xml文件引入

	<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.4.RELEASE</version><relativePath />  </parent><dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>2.0.6</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>20.0</version><scope>compile</scope></dependency>

详解:只需要引入knife4j-spring-boot-starter即可,它会把其它的依赖都加载进来,如要Swagger的核心包也会加载进来,我们看下他的依赖包如下:

 等等可以看到需要的均包含里面。

2、配置文件

pro格式

# Swagger 基础认证配置
knife4j.basic.username=admin
knife4j.basic.password=admin# 开启认证 true:开启 。 false:关闭
knife4j.basic.enable=false# 生产环境配置 # 默认 false,放开所有Swagger相关资源 true:屏蔽相关资源
knife4j.production=true# 全局开关 # 是否开启swagger true:开启 。 false:关闭
knife4j.enable=false

yml格式

#配置swagger配置
knife4j:basic:username: adminpassword: adminenable: true #开启认证 true:开启 。 false:关闭production: false #默认是 false 放开所有Swagger相关资源。 true:屏蔽相关资源enable: true #是否开启swagger true:开启 。 false:关闭

3、代码中核心配置类

1)无项目名称


import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;
import springfox.documentation.service.ApiInfo;
import org.springframework.context.annotation.Bean;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.builders.PathSelectors;
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;@Configuration
@EnableSwagger2WebMvc
@EnableKnife4j
@ConditionalOnExpression("${knife4j.enable}")  //开启访问接口文档的权限  **knife4j.enable是在yml配置文件中配置为true
public class SwaggerConfiguration {@Beanpublic Docket createRestApi() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.basePackage("com.demo.service.controller")).paths(PathSelectors.any()).build();}private ApiInfo apiInfo() {return new ApiInfoBuilder().title("Spring Boot中使用Swagger2构建RESTful APIs(带认证)").description("更多Spring Boot相关文章请关注:https://blog.csdn.net/elvishehai").termsOfServiceUrl("https://blog.csdn.net/elvishehai").version("1.0").build();}
}

@EnableSwagger2WebMvc原先是用@EnableSwagger2来做注解的,最新版本直接使用。@EnableSwagger2WebMvc来做注解,暂时可以把他理解为功能就是一样的。
@EnableKnife4j API接口文档的开关。 

2)有项目名称

server:servlet:context-path: /order-service

配置类


import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.ApiKey;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;import java.util.List;import static com.google.common.collect.Lists.newArrayList;@Configuration
@EnableSwagger2WebMvc
@EnableKnife4j
@ConditionalOnExpression("${knife4j.enable}")  //开启访问接口文档的权限  **knife4j.enable是在yml配置文件中配置为true
public class SwaggerConfiguration implements WebMvcConfigurer {@Beanpublic Docket createRestApi() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()//.apis(RequestHandlerSelectors.basePackage("com.demo.service.controller")).apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)).paths(PathSelectors.any()).build().securitySchemes(security());// 关键修改:添加项目路径前缀映射// .pathMapping(contextPath);}@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");//试试swaggerregistry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");registry.addResourceHandler("/result/**").addResourceLocations("classpath:/static/result/");}private ApiInfo apiInfo() {return new ApiInfoBuilder().title("Spring Boot中使用Swagger2构建RESTful APIs(带认证)").description("更多Spring Boot相关文章请关注:https://blog.csdn.net/elvishehai").termsOfServiceUrl("https://blog.csdn.net/elvishehai").version("1.0").build();}private List<ApiKey> security() {return newArrayList(new ApiKey("token", "token", "header"));}
}

 原理:继承 WebMvcConfigurer 接口能解决 NoHandlerFoundException 的原因在于:它允许开发者直接干预 Spring MVC 的默认配置,补充缺失的静态资源映射规则。

1)默认静态资源映射的局限性
Spring Boot 默认仅映射 /static、/public 等目录下的静态资源。但 Knife4j 的 doc.html 等文件位于 META-INF/resources 下,需手动添加资源路径映射规则。
2)WebMvcConfigurer 的作用
实现 WebMvcConfigurer 接口后,通过重写 addResourceHandlers 方法,显式声明自定义资源路径,覆盖框架默认行为。例如

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/order-service/doc.html").addResourceLocations("classpath:/META-INF/resources/doc.html");
}

3)路径匹配修正
若未显式配置带项目前缀的路径(如 /order-service/doc.html),框架会按默认路径(如/doc.html)查找资源。手动映射后,资源路径与请求路径完全匹配,避免NoHandlerFoundException。

4、启动后访问

http://localhost:8080/order-service/doc.html   弹出

或者

具体弹出什么根据配置文件的信息确定。 

5、参考网上大牛文档

参考文献

文档地址传播
说明文档: https://doc.xiaominfo.com
效果(旧版):http://swagger-bootstrap-ui.xiaominfo.com/doc.html
效果(2.X版):http://knife4j.xiaominfo.com/doc.html
Gitee:https://gitee.com/xiaoym/knife4j
GitHub:https://github.com/xiaoymin/swagger-bootstrap-ui
示例:https://gitee.com/xiaoym/swagger-bootstrap-ui-demo

到此,Knife4j 接口文档添加登录验证流程分析,下期更精彩敬请期待!

http://www.dtcms.com/wzjs/510478.html

相关文章:

  • 简历模板做的最好的是哪个网站教育机构
  • 做同城网站有哪些苹果要做搜索引擎
  • 做防腐木网站网站排名查询
  • 龙岩企业网站建设制作优化关键词怎么做
  • 美国做3d h动画的网站如何自己做一个软件
  • 政府网站站群建设方案互联网品牌宣传推广服务公司
  • 做基因结构可以用哪个网站北京网站建设优化
  • 设计师做兼职的网站有哪些百度推广费用一天多少钱
  • 水果零售电子商务网站综合评价与建设研究搭建网站的步骤
  • 网站关键词和描述google seo是什么
  • 网站建设合同示范文本怎么接游戏推广的业务
  • 专业教育网站建设公司网站设计图
  • 网站做优化效果怎么样培训网站源码
  • 备案资料 网站建设方案书品牌seo如何优化
  • 做网站卖游戏装备seo是怎么优化
  • 山东济南网站制作优化企业培训
  • 福州建站免费模板搜索引擎查关键词排名的软件
  • 建工网官方网站佛山企业用seo策略
  • 网站运营问题营销案例网站
  • 做政府网站话术深圳市网络seo推广平台
  • 用vis做的简单网站网站推广手段
  • wordpress 人物页面百度推广seo自学
  • 汽车网站网页设计免费推广的平台都有哪些
  • 用什么软件来做网站搜索引擎营销特点
  • 简述建设政府门户网站的原因2023年3月份疫情严重
  • 便宜网站建设多少钱商务软文写作范文200字
  • 中国石化工程建设有限公司江北seo页面优化公司
  • 兰州企业网站排名优化seo优化快排
  • 沈阳做网站找思路免费网站seo排名优化
  • 马来西亚的网站后缀临汾网络推广