我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么实现Java开发SpringBoot集成接口文档

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎么实现Java开发SpringBoot集成接口文档

本篇内容介绍了“怎么实现Java开发SpringBoot集成接口文档”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

    swagger vs smart-doc

    首先我们先看一下Swagger组件目前存在的主要问题:

    Swagger的代码侵入性比较强

    这个很容易理解,要让Swagger生成接口文档必须要给方法或字段添加对应的注解,是存在代码侵入的。

    原生swagger不支持接口的参数分组

    对于有做参数分组的接口,原生的Swagger并未支持,虽然我们通过扩展其组件可以让其支持参数分组,但是毕竟要开发,而且还未支持最新的Swagger3版本。

    那作为对比,smart-doc 是基于接口源码分析来生成接口文档,完全做到零注解侵入,你只需要按照java标准注释的写,smart-doc就能帮你生成一个简易明了的markdown 或是一个像GitBook样式的静态html文档。官方地址:https://gitee.com/smart-doc-team/smart-doc

    简单罗列一下smart-doc的优点

    零注解、零学习成本、只需要写标准java注释即可生成文档。

    基于源代码接口定义自动推导,强大的返回结构推导。

    支持Spring MVC,Spring Boot,Spring Boot Web Flux(controller书写方式)。

    支持Callable,Future,CompletableFuture等异步接口返回的推导。

    支持JavaBean上的JSR303参数校验规范,支持参数分组。

    对一些常用字段定义能够生成有效的模拟值。…

    接下来我们来看看SpringBoot中如何集成smart-doc。

    SpringBoot集成 smart-doc

    smart-doc支持多种方式生成接口文档:maven插件、gradle插件、单元测试(不推荐),这里我才用的是基于maven插件生成,步骤如下:

    引入依赖,版本选择最新版本

    <!--引入smart-doc--><plugin>  <groupId>com.github.shalousun</groupId>  <artifactId>smart-doc-maven-plugin</artifactId>  <version>2.2.7</version>  <configuration>    <configFile>./class="lazy" data-src/main/resources/smart-doc.json</configFile>    <projectName>Smart-Doc初体验</projectName>  </configuration></plugin>

    重点在 configFile中指定smart-doc配置文件 smart-doc.json

    新建配置文件smart-doc.json

    {  "outPath": "class="lazy" data-src/main/resources/static/doc"}

    指定smart-doc生成的文档路径,其他配置项可以参考官方wiki。

    通过执行maven 命令生成对应的接口文档

    //生成htmlmvn -Dfile.encoding=UTF-8 smart-doc:html

    当然也可以通过idea中的maven插件生成

    怎么实现Java开发SpringBoot集成接口文档

    访问接口文档

    生成接口文档后我们通过 http://localhost:8080/doc/api.html 查看,效果如下:

    怎么实现Java开发SpringBoot集成接口文档

    看到这里的同学可能会呵呵一笑,就这?啥也没有呀!这还想让我替换Swagger?

    别急,刚刚只是体验了smart-doc的基础功能,接下来我们通过丰富smart-doc的配置文件内容来增强其功能。

    功能增强

    1. 开启调试

    一个优秀的接口文档工具调试功能必不能少,smart-doc支持在线调试功能,只需要加入如下几个配置项:

    {  "serverUrl": "http://localhost:8080",      -- 服务器地址  "allInOne": true,                -- 是否将文档合并到一个文件中,一般推荐为true  "outPath": "class="lazy" data-src/main/resources/static/doc",  -- 指定文档的输出路径  "createDebugPage": true,           -- 开启测试  "allInOneDocFileName":"index.html",      -- 自定义文档名称  "projectName": "初识smart-doc"        -- 项目名称}

    通过"createDebugPage": true 开启debug功能,在让生成smart-doc生成文档时直接放入到 static/doc/下,这样可以直接启动程序访问页面 http://localhost:8080/doc/index.html 进行开发调试。

    怎么实现Java开发SpringBoot集成接口文档

    有的开发人员直接在idea中使用【Open In Browser】打开smart-doc生成的debug页面,如果非要这做,前端js请求后台接口时就出现了跨域。因此你需要在后端配置跨域。

    这里以 SpringBoot2.3.x 为例配置后端跨域:

    @Configurationpublic class WebMvcAutoConfig implements WebMvcConfigurer {    @Bean    public CorsFilter corsFilter() {        final UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new UrlBasedCorsConfigurationSource();        final CorsConfiguration corsConfiguration = new CorsConfiguration();                corsConfiguration.setAllowCredentials(true);                corsConfiguration.addAllowedOrigin("*");                corsConfiguration.addAllowedHeader("*");                corsConfiguration.addAllowedMethod("*");        urlBasedCorsConfigurationSource.registerCorsConfiguration("/**", corsConfiguration);        return new CorsFilter(urlBasedCorsConfigurationSource);    }}

    开启跨域后我们就可以直接在静态接口页面中进行调试了。

    2. 通用响应体

    在 “SpringBoot 如何统一后端返回格式?老鸟们都是这样玩的!”一文中我们通过实现 ResponseBodyAdvice对所有返回值进行了包装,给前端返回统一的数据结构ResultData,我们需要让其在接口文档中也有此功能,在配置文件追加配置内容:

    {  "responseBodyAdvice":{            -- 通用响应体    "className":"com.jianzh6.blog.base.ResultData"  }}

    怎么实现Java开发SpringBoot集成接口文档

    3. 自定义Header

    在前后端分离项目中我们一般需要在请求接口时设置一个请求头,如token,Authorization等…后端根据请求头判断是否为系统合法用户,目前smart-doc也对其提供了支持。

    在smart-doc配置文件 smart-doc.json中继续追加如下配置内容:

    "requestHeaders": [ //设置请求头,没有需求可以不设置    {      "name": "token",//请求头名称      "type": "string",//请求头类型      "desc": "自定义请求头 - token",//请求头描述信息      "value":"123456",//不设置默认null      "required": false,//是否必须      "since": "-",//什么版本添加的改请求头      "pathPatterns": "/smart/say",//只有以/smart/say 开头的url才会有此请求头      "excludePathPatterns":"/smart/add,/smart/edit" // url=/app/page/将不会有该请求头    }]

    效果如下:

    怎么实现Java开发SpringBoot集成接口文档

    4. 参数分组

    演示一下smart-doc对于参数分组的支持

    怎么实现Java开发SpringBoot集成接口文档

    新增操作时,age、level为必填项,sex为非必填。

    怎么实现Java开发SpringBoot集成接口文档

    编辑操作时,id,appid,leven为必填项,sex为非必填。

    通过上面的效果可以看出smart-doc对于参数分组是完全支持的。

    5. idea配置doc

    自定义的tag默认是不会自动提示的,需要用户在idea中进行设置。设置好后即可使用,下面以设置smart-doc自定义的mock tag为例,设置操作如下:

    怎么实现Java开发SpringBoot集成接口文档

    6. 完整配置

    附上完整配置,如果还需要其他配置大家可以参考wiki自行引入。

    {  "serverUrl": "http://localhost:8080",  "allInOne": true,  "outPath": "class="lazy" data-src/main/resources/static/doc",  "createDebugPage": true,  "allInOneDocFileName":"index.html",  "projectName": "初识smart-doc",  "packageFilters": "com.jianzh6.blog.smartdoc.*",  "errorCodeDictionaries": [{    "title": "title",    "enumClassName": "com.jianzh6.blog.base.ReturnCode",    "codeField": "code",    "descField": "message"  }],  "responseBodyAdvice":{    "className":"com.jianzh6.blog.base.ResultData"  },  "requestHeaders": [{    "name": "token",    "type": "string",    "desc": "自定义请求头 - token",    "value":"123456",    "required": false,    "since": "-",    "pathPatterns": "/smart/say",    "excludePathPatterns":"/smart/add,/smart/edit"  }]}

    “怎么实现Java开发SpringBoot集成接口文档”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    怎么实现Java开发SpringBoot集成接口文档

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档

    猜你喜欢

    怎么实现Java开发SpringBoot集成接口文档

    本篇内容介绍了“怎么实现Java开发SpringBoot集成接口文档”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!swagger vs sm
    2023-06-25

    java集成开发SpringBoot生成接口文档的方法是什么

    这篇文章主要介绍“java集成开发SpringBoot生成接口文档的方法是什么”,在日常操作中,相信很多人在java集成开发SpringBoot生成接口文档的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家
    2023-06-25

    怎么用java快速生成接口文档

    本篇内容主要讲解“怎么用java快速生成接口文档”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用java快速生成接口文档”吧!目录前言方案一,使用japidocs基本用法方案2,swagge
    2023-06-20

    java怎么实现webservice接口开发

    要实现Java的Web Service接口开发,可以使用Java的一些框架和库来帮助开发。以下是一个基本的步骤示例:1. 创建一个Java项目,并添加适当的依赖库。常用的库包括JAX-WS(Java API for XML Web Serv
    2023-09-15

    Spring Boot项目集成Knife4j接口文档的实例代码怎么写

    本篇文章给大家分享的是有关Spring Boot项目集成Knife4j接口文档的实例代码怎么写,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Knife4j就相当于是swagge
    2023-06-22

    springboot怎么实现接口灰度发布

    这篇文章主要介绍“springboot怎么实现接口灰度发布”,在日常操作中,相信很多人在springboot怎么实现接口灰度发布问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”springboot怎么实现接口灰
    2023-06-29

    Java SpringBoot怎么集成ChatGPT实现AI聊天

    这篇文章主要介绍“Java SpringBoot怎么集成ChatGPT实现AI聊天”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java SpringBoot怎么集成ChatGPT实现AI聊天”文章
    2023-07-05

    Springboot怎么集成minio实现文件存储

    本篇内容主要讲解“Springboot怎么集成minio实现文件存储”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Springboot怎么集成minio实现文件存储”吧!MinIO 是一款基于G
    2023-06-29

    springboot+vue组件开发怎么实现接口断言功能

    本篇内容介绍了“springboot+vue组件开发怎么实现接口断言功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!基于 springbo
    2023-06-30

    java接口组成更新怎么实现

    这篇文章主要介绍“java接口组成更新怎么实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“java接口组成更新怎么实现”文章能帮助大家解决问题。1.1 接口组成更新概述接口的组成常量:public
    2023-06-30

    如何实现 Java 接口返回文件流?(java接口返回文件流怎么实现)

    在Java开发中,有时需要从接口返回文件流,这在处理文件下载、生成动态文件等场景中非常常见。以下是实现Java接口返回文件流的详细步骤:一、准备工作确保你已经熟悉Java的基本语法和文件操作相关的类,如
    如何实现 Java 接口返回文件流?(java接口返回文件流怎么实现)
    Java2024-12-14

    SpringBoot项目之怎么实现短信发送接口

    这篇文章主要讲解了“SpringBoot项目之怎么实现短信发送接口”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SpringBoot项目之怎么实现短信发送接口”吧!一. 短信接口实现描述:请
    2023-06-25

    怎么实现java开发SpringBoot参数校验过程

    这篇文章主要讲解了“怎么实现java开发SpringBoot参数校验过程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么实现java开发SpringBoot参数校验过程”吧!为什么需要参数
    2023-06-25

    使用Java怎么实现发送报文与接收报文

    这篇文章将为大家详细讲解有关使用Java怎么实现发送报文与接收报文,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。发送报文先创建生成报文的方法,添加了xml数据/** * @desc 生成xm
    2023-06-14

    Node怎么实现前端本地开发接口代理服务

    本篇内容介绍了“Node怎么实现前端本地开发接口代理服务”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!背景我们在前端开发的接口联调阶段,经常
    2023-06-30

    SpringBoot集成Mybatis-plus并实现自动生成相关文件的示例代码怎么写

    这篇文章给大家介绍SpringBoot集成Mybatis-plus并实现自动生成相关文件的示例代码怎么写,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Mybatis-Plus是一个优秀的Mybatis增强工具,目前更新
    2023-06-22

    编程热搜

    • Python 学习之路 - Python
      一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
      Python 学习之路 - Python
    • chatgpt的中文全称是什么
      chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
      chatgpt的中文全称是什么
    • C/C++中extern函数使用详解
    • C/C++可变参数的使用
      可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
      C/C++可变参数的使用
    • css样式文件该放在哪里
    • php中数组下标必须是连续的吗
    • Python 3 教程
      Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
      Python 3 教程
    • Python pip包管理
      一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
      Python pip包管理
    • ubuntu如何重新编译内核
    • 改善Java代码之慎用java动态编译

    目录