springboot集成knife4j2.0.8实现自定义md文档及权限控制
一、原由
最近在做一个小项目的开入API,文档是用vuepress写的静态md并发布。因为是项目刚起步,对接的接口也会经常改动,每次改动都要修改文档感觉太麻烦,就想到用knife4j来代替。但外部使用的接口和内部使用不一样,需要一些接入引导说明,比如API接入步骤、鉴权说明…等
重新翻了knife4j的文档发现2.x版本自2.0.7之后可以使用自定义文档的功能,自定义文档正好也是我喜欢的Markdown文件,再加一个权限验证,目前是很好的解决了我的问题。
效果:
二、开始
knife4j2.x版如果想实现自定义Markdown文档需要将版本升级2.0.7及以上
本次测试使用的springboot版本 2.0.3.RELEASE
需要用到的依赖
//swagger版本支持
compile group: 'io.springfox', name: 'springfox-swagger2', version: '2.10.5'
compile group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.10.5'
compile 'io.springfox:springfox-spring-webmvc:2.10.5'
//swagger注解无默认值错误忽略
compile group: 'io.swagger', name: 'swagger-annotations', version: '1.5.22'
compile group: 'io.swagger', name: 'swagger-models', version: '1.5.22'
//knife2.x版本
compile group: 'com.github.xiaoymin', name: 'knife4j-spring-boot-starter', version: '2.0.8'
//升级spring-plugin-core,否则会有冲突
compile 'org.springframework.plugin:spring-plugin-core:2.0.0.RELEASE'
SwaggerConfiguration
package com.only.oc.openapi.config;import com.fasterxml.classmate.TypeResolver;
import com.github.xiaoymin.knife4j.spring.extension.OpenApiExtensionResolver;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import springfox.bean.validators.configuration.BeanValidatorPluginsConfiguration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;@Configuration
@EnableSwagger2WebMvc
@Import(BeanValidatorPluginsConfiguration.class)
public class SwaggerConfiguration {private final TypeResolver typeResolver;private final OpenApiExtensionResolver openApiExtensionResolver;@Autowiredpublic SwaggerConfiguration(TypeResolver typeResolver, OpenApiExtensionResolver openApiExtensionResolver) {this.typeResolver = typeResolver;this.openApiExtensionResolver = openApiExtensionResolver;}@Beanpublic Docket createRestApi() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.basePackage("com.only.oc.openapi.api"))//扫描包.apis(RequestHandlerSelectors.withClassAnnotation(Api.class))//扫描在API注解的contorller.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))//扫描带ApiOperation注解的方法.paths(PathSelectors.any()).build().extensions(openApiExtensionResolver.buildExtensions("2.X版本"));}private ApiInfo apiInfo() {return new ApiInfoBuilder().title("昂立课堂(开放API)").description("昂立课堂开放平台").version("v2.x").license("Apache License Version 2.0").licenseUrl("https://www.apache.org/licenses/LICENSE-2.0").contact(new Contact("作者", "", "xxx@qq.com")).build();}}
application.yml
server:port: 8080knife4j:enable: true# 生产环境屏蔽# production: true# 开启Swagger的Basic认证功能,默认是falsebasic:enable: trueusername: onlypassword: onlydocuments:-group: 2.X版本name: 另外文档分组请看这里locations: classpath:markdown/*- group: 2.X版本name: 接入方法locations: classpath:markdown/api.md
文档结构位置
源码
https://codechina.csdn.net/leopast/knife4j-demo.git
三、坑
当你一切准备就绪时就报如下错误
这里需要升级spring核心插件
compile 'org.springframework.plugin:spring-plugin-core:2.0.0.RELEASE'
原创文章未经本人许可,不得用于商业用途及传统媒体。转载请注明出处,否则属于侵权行为,谢谢合作!
springboot集成knife4j2.0.8实现自定义md文档及权限控制相关推荐
- 在asp.net core2.1中添加中间件以扩展Swashbuckle.AspNetCore3.0支持简单的文档访问权限控制...
Swashbuckle.AspNetCore3.0 介绍 一个使用 ASP.NET Core 构建的 API 的 Swagger 工具.直接从您的路由,控制器和模型生成漂亮的 API 文档,包括用于探 ...
- Deckset for Mac(MD文档转幻灯片软件)
Deckset Mac版是应用在Mac上的MD文档转幻灯片软件,是一种新的简单的创建演示的方式,10个内置主题,集成了高质量字体,Deckset能够生成包含所有幻灯片的PDF文件,您也可以将任何幻灯片 ...
- 工具篇—《MD文档辅助工具,PicGo使用》
MD文档辅助工具,PicGo使用 一.概念 二.配置教程 1. 安装PicGo 2.Typora配置 3.常见错误 1.failed to fetch 2.上传失败 三.设置GitHub图床 四.设置 ...
- linux md文件 编辑,用Vim写md文档的简单姿势
对于重度Vim使用者来说,编辑md文档用Vim是顺理成章的事,在此记录下来. 近期开始带学生接触Openstack开发.在8G内存的笔记本上跑个Devstack开发环境,至少要分掉4G,否则虚拟机卡成 ...
- vue中展示md文档
1. 所需依赖 github-markdown-css highlight.js vue-markdown-loader vue-template-compiler 安装命令: npm i githu ...
- .md 文档自动编号 js 脚本
.md 文档自动编号 js 脚本 1.契机 在使用 typora 的时候,没有自动编号,每一级标题要手动编号,比较累.之前有找过修改主题的 css 来实现自动编号的,但是只是个样式而已,没有真正的编号 ...
- .md文件以及markdown语法书写md文档
.md文件以及markdown语法书写md文档 1. .md文件如何打开 2. markdown是什么? 2.1 markdown用来干嘛? 2.2 怎样书写和读取markdown? 3. markd ...
- 我的Debian 8.0 (jessie)配置文档
2019独角兽企业重金招聘Python工程师标准>>> 我的Debian 8.0 (jessie)配置文档 1,添加软件源 su到root用户 vi /etc/apt/sou ...
- ORACLE LINUX 6.3 + ORACLE 11.2.0.3 RAC + VBOX安装文档
ORACLE LINUX 6.3 + ORACLE 11.2.0.3 RAC + VBOX安装文档 2015-10-21 12:51 525人阅读 评论(0) 收藏 举报 分类: Oracle RA ...
- 使用Typora编辑器编写md文档插入图片方法
使用Typora编辑器编写md文档插入图片方法 截图粘贴到文档中: 图片右键,选择"复制图片到"将图片复制到md文档相对路径: 将图片路径修改为相对路径,并替换斜杆为"/ ...
最新文章
- DispatcherServlet之HandlerAdapter的handle
- [每日一题] 11gOCP 1z0-053 :2013-09-29 Flashback Data Archive ...................................6...
- Hibernate hbm2ddl.auto配置的可能值是什么,它们做了什么
- 20180724 (面向对象:类的命名空间和查询顺序丶组合)
- PUSH进栈指令和POP出栈指令
- VC实现将对话框最小化到系统托盘
- symbian 获取手机型号
- 补第一阶段冲刺站立会议1(应发表日期5月13日)
- 【Python】20个Pandas数据实战案例,干货多多
- 96秒100亿!如何抗住双11高并发流量?
- 【剑指offer】包含min函数的栈
- 341. 扁平化嵌套列表迭代器
- 防抖、节流(细讲)【面试】
- Android远程过程通讯,Android系统进程间通信(IPC)机制Binder中的Client获得Server远程接口过程源代码分析(3)...
- Raki的读paper小记:GloVe: Global Vectors for Word Representation
- 第三天 二列和三列布局
- 三列自适应布局(圣杯布局)
- 最新cs1.6服务器ip地址,CS1.6服务器IP地址
- 结构梁配筋最牛插件_YouTube 字幕翻译 —— Chrome 插件
- APISpace 预热开启