如何实现knife4j导出离线接口文档
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,本篇内容主要讲解"如何实现knife4j导出离线接口文档",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何实现knife4j导出离线接口文档"吧!** 导
千家信息网最后更新 2025年11月07日如何实现knife4j导出离线接口文档
本篇内容主要讲解"如何实现knife4j导出离线接口文档",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何实现knife4j导出离线接口文档"吧!
** 导出离线接口文档,妈妈再也不用让我手动写接口文档了 **
1 引入依赖
io.springfox springfox-boot-starter 3.0.0
` com.github.xiaoymin knife4j-spring-boot-starter 3.0.2
2 增加swagger配置类
package com.example.demo.conf;import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;import io.swagger.annotations.Api;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.web.context.request.async.DeferredResult;import springfox.documentation.builders.*;import springfox.documentation.oas.annotations.EnableOpenApi;import springfox.documentation.service.*;import springfox.documentation.spi.DocumentationType;import springfox.documentation.spi.service.contexts.SecurityContext;import springfox.documentation.spring.web.plugins.Docket;import java.util.ArrayList;import java.util.Collections;import java.util.List;/** * swagger 配置 * * @author xmtx */@Configuration@EnableOpenApi@EnableKnife4jpublic class Swagger3Config { @Bean public Docket systemApi() { return new Docket(DocumentationType.SWAGGER_2) .groupName("小明童鞋demo") .genericModelSubstitutes(DeferredResult.class).useDefaultResponseMessages(false).forCodeGeneration(true) .select() .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) // 这里写controller 所在的路径 .apis(RequestHandlerSelectors.basePackage("com.example.demo.controller")) .paths(PathSelectors.any()).build() .pathMapping("/") // 暂时不加权限认证// .securitySchemes(Collections.singletonList(securitySchema()))// .securityContexts(Collections.singletonList(securityContext())) .apiInfo(systemApiInfo()); } private ApiInfo systemApiInfo() { return new ApiInfoBuilder() .title("小明童鞋demo") .description("测试swagger整合knife4j生成离线接口文档") .termsOfServiceUrl("https://my.oschina.net/xiaomingnevermind") .contact(new Contact("xmtx", "", "xmtx.2015@gmail.com")) .version("1.0") .build(); } /** * 生成全局通用参数 * * @return */ private List getGlobalRequestParameters() { List parameters = new ArrayList<>(); parameters.add(new RequestParameterBuilder() .name("x-access-token") .description("令牌") .required(false) .in(ParameterType.HEADER) .build()); parameters.add(new RequestParameterBuilder() .name("Equipment-Type") .description("产品类型") .required(false) .in(ParameterType.HEADER) .build()); return parameters; } /** * 生成通用响应信息 * * @return */ private List getGlobalResponseMessage() { List responseList = new ArrayList<>(); responseList.add(new ResponseBuilder().code("404").description("找不到资源").build()); return responseList; }//// private OAuth securitySchema() {//// List authorizationScopeList = new ArrayList();// List grantTypes = new ArrayList();// GrantType creGrant = new ResourceOwnerPasswordCredentialsGrant("/oauth/token");//// grantTypes.add(creGrant);//// return new OAuth("oauth3schema", authorizationScopeList, grantTypes);//// }//// private SecurityContext securityContext() {// return SecurityContext.builder()// .securityReferences(defaultAuth())// .forPaths(PathSelectors.ant("/v1/api/**"))// .build();// } private List defaultAuth() { final AuthorizationScope[] authorizationScopes = new AuthorizationScope[0]; return Collections.singletonList(new SecurityReference("oauth3schema", authorizationScopes)); }} 1. 3. 编写一个controller进行测试
private static final Logger log = LoggerFactory.getLogger(AspectController.class);@Autowiredprivate AspectService aspectService;@ApiOperation(value = "测试getaspect")@GetMapping(value = "/getaspect")public String getAspect(@ApiParam("名称") String name, @ApiParam Integer age) throws InterruptedException { AspectBean aspectBean = new AspectBean(); aspectBean.setAge(age); aspectBean.setBirthday(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date().getTime())); aspectBean.setSex(1); aspectBean.setName(name); return JSON.toJSONString(aspectService.testAspect(aspectBean));}@PostMapping(value = "/postaspect")public String postAspect(@RequestBody AspectBean aspectBean) throws InterruptedException { return JSON.toJSONString(aspectService.testAspect(aspectBean));}@GetMapping(value = "/init")public boolean init() { return aspectService.init();}1. 4. 查看效果图


到此,相信大家对"如何实现knife4j导出离线接口文档"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
接口
文档
测试
生成
内容
童鞋
小明
学习
配置
实用
更深
不用
产品
令牌
信息
全局
兴趣
参数
名称
妈妈
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库技术基础判断题
重庆app手机软件开发
全球云服务器腾讯
钉钉网络安全文字内容
网络安全设备属于几层设备
软件开发专业面试难吗
英语作文网络安全100
铁锈怎么连接服务器
信阳春阳网络技术支持
数据库写group的区别
更新一下数据库
软件开发适合什么笔记本电脑
数据库repeat
亿联网络技术股份有限公司产品
对国家网络安全 你怎么看
北京聚量引擎网络技术有限公司
天津静海网络安全保卫支队
安徽通用软件开发市价
网络安全歌曲大全
银行有万德数据库
淮南旧服务器回收在线咨询
岳阳软件开发系列
做好网络安全法规驱动力
无锡计算机网络技术
边瑞网络技术有限公司
企业防火墙应用网络安全
丽江互联网科技选哪家
怎么更改服务器密码安全规则
云服务器有网络么
管理员界面打开数据库