一、原由

最近在做一个小项目的开入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文档及权限控制相关推荐

  1. 在asp.net core2.1中添加中间件以扩展Swashbuckle.AspNetCore3.0支持简单的文档访问权限控制...

    Swashbuckle.AspNetCore3.0 介绍 一个使用 ASP.NET Core 构建的 API 的 Swagger 工具.直接从您的路由,控制器和模型生成漂亮的 API 文档,包括用于探 ...

  2. Deckset for Mac(MD文档转幻灯片软件)

    Deckset Mac版是应用在Mac上的MD文档转幻灯片软件,是一种新的简单的创建演示的方式,10个内置主题,集成了高质量字体,Deckset能够生成包含所有幻灯片的PDF文件,您也可以将任何幻灯片 ...

  3. 工具篇—《MD文档辅助工具,PicGo使用》

    MD文档辅助工具,PicGo使用 一.概念 二.配置教程 1. 安装PicGo 2.Typora配置 3.常见错误 1.failed to fetch 2.上传失败 三.设置GitHub图床 四.设置 ...

  4. linux md文件 编辑,用Vim写md文档的简单姿势

    对于重度Vim使用者来说,编辑md文档用Vim是顺理成章的事,在此记录下来. 近期开始带学生接触Openstack开发.在8G内存的笔记本上跑个Devstack开发环境,至少要分掉4G,否则虚拟机卡成 ...

  5. vue中展示md文档

    1. 所需依赖 github-markdown-css highlight.js vue-markdown-loader vue-template-compiler 安装命令: npm i githu ...

  6. .md 文档自动编号 js 脚本

    .md 文档自动编号 js 脚本 1.契机 在使用 typora 的时候,没有自动编号,每一级标题要手动编号,比较累.之前有找过修改主题的 css 来实现自动编号的,但是只是个样式而已,没有真正的编号 ...

  7. .md文件以及markdown语法书写md文档

    .md文件以及markdown语法书写md文档 1. .md文件如何打开 2. markdown是什么? 2.1 markdown用来干嘛? 2.2 怎样书写和读取markdown? 3. markd ...

  8. 我的Debian 8.0 (jessie)配置文档

    2019独角兽企业重金招聘Python工程师标准>>> 我的Debian  8.0 (jessie)配置文档 1,添加软件源  su到root用户 vi  /etc/apt/sou ...

  9. 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 ...

  10. 使用Typora编辑器编写md文档插入图片方法

    使用Typora编辑器编写md文档插入图片方法 截图粘贴到文档中: 图片右键,选择"复制图片到"将图片复制到md文档相对路径: 将图片路径修改为相对路径,并替换斜杆为"/ ...

最新文章

  1. DispatcherServlet之HandlerAdapter的handle
  2. [每日一题] 11gOCP 1z0-053 :2013-09-29 Flashback Data Archive ...................................6...
  3. Hibernate hbm2ddl.auto配置的可能值是什么,它们做了什么
  4. 20180724 (面向对象:类的命名空间和查询顺序丶组合)
  5. PUSH进栈指令和POP出栈指令
  6. VC实现将对话框最小化到系统托盘
  7. symbian 获取手机型号
  8. 补第一阶段冲刺站立会议1(应发表日期5月13日)
  9. 【Python】20个Pandas数据实战案例,干货多多
  10. 96秒100亿!如何抗住双11高并发流量?
  11. 【剑指offer】包含min函数的栈
  12. 341. 扁平化嵌套列表迭代器
  13. 防抖、节流(细讲)【面试】
  14. Android远程过程通讯,Android系统进程间通信(IPC)机制Binder中的Client获得Server远程接口过程源代码分析(3)...
  15. Raki的读paper小记:GloVe: Global Vectors for Word Representation
  16. 第三天 二列和三列布局
  17. 三列自适应布局(圣杯布局)
  18. 最新cs1.6服务器ip地址,CS1.6服务器IP地址
  19. 结构梁配筋最牛插件_YouTube 字幕翻译 —— Chrome 插件
  20. APISpace 预热开启

热门文章

  1. 几个新的H5标签介绍
  2. 手持小电风扇原理图挂脖小风扇电路图
  3. 捷径|皮皮虾去水印教程
  4. 针对安卓APP的 OCR图片识别技术研究与 DEMO
  5. 一个有趣的二维码生成库Qart
  6. 单片机的ISP是什么
  7. linux 耳机驱动程序,TAS571XSW-LINUX
  8. 28、制作畅销书排行榜页面
  9. 20172301 《程序设计与数据结构》第六周学习总结
  10. python爬虫爬取网易云音乐歌手信息