如何实现knife4j导出离线接口文档
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,本篇内容主要讲解"如何实现knife4j导出离线接口文档",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何实现knife4j导出离线接口文档"吧!** 导
千家信息网最后更新 2025年01月19日如何实现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 ListgetGlobalRequestParameters() { 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安全错误
数据库的锁怎样保障安全
三级数据库技术考过指南
学习软件开发电脑配置
服务器bios信息
电商软件开发方案
云服务器免费管理软件
手持式拉曼光谱仪云端数据库
ibm 服务器配置
餐饮软件用什么软件开发
ef是怎么操作数据库的
汽车网络安全指标
网络安全三年计划何时出台
电子商务与网络安全技术
权限管理数据库设计方法
抵制网络安全六年级手抄报
腾讯买的服务器可以退吗
数据库创建的日志文件找不到
it培训数据库培训
财务数据库类型是什么
北京为村互联网科技有限公司
本地配置ftp服务器
微信无法连接到服务器1237
流浪武士服务器要强化吗
软件开发怎么报预算
数据库怎么对重复数据统计
sql数据库新增用户密码
吉林语音网络技术
电子图书 数据库
衡水最新网络安全消息
企业网络安全趋势
核心数据库包括哪些