实用工具篇(一):JApiDocs

news2024/10/6 2:27:44

JApiDocs是一个无需额外注解、开箱即用的SpringBoot接口文档生成工具。

编写和维护API文档这个事情,对于后端程序员来说,是一件恼人但又不得不做的事情,我们都不喜欢写文档,但除非项目前后端代码都是自己写的,否则API文档将是前后端协作中一个不可或缺的沟通界面。既然不可避免,那就想办法弄个轮子吧。人生苦短,必须偷懒。

无图无真相,生成文档的效果如下:

相比Swagger要写一堆注解,Spring RestDocs需要写测试用例,才能生成API文档。JApiDocs 具有无痛集成的特点,你只需花几分钟就能知道它怎么用了。

快速开始

引入依赖

<dependency>
  <groupId>io.github.yedaxia</groupId>
  <artifactId>japidocs</artifactId>
  <version>1.4.4</version>
</dependency>

要使得JApiDcos正确工作,你写的代码应该是像下面的样子的: 

/**
 * 用户接口
 */
@RequestMapping("/api/user/")
@RestController
public class UserController {
    /**
     * 用户列表
     * @param listForm
     */
    @RequestMapping(path = "list", method = {RequestMethod.GET,  RequestMethod.POST}  )
    public ApiResult<PageResult<UserVO>> list(UserListForm listForm){
        return null;
    }

    /**
     * 保存用户
     * @param userForm
     */
    @PostMapping(path = "save")
    public ApiResult<UserVO> saveUser(@RequestBody UserForm userForm){
        return null;
    }
}

我们给Controller类和方法加上必要的注释,给接口方法返回相关的对象类型。是的,这样JApiDocs就能解析到相关的接口信息了,就跟我们平时写的代码是差不多的,但要注意,你要通过@param来告诉JApiDocs接口的参数,但在IDE的帮助下,这个工作将是轻松愉悦的: 

然后你在任意一个main入口方法执行下面的代码就可以生成文档了:

DocsConfig config = new DocsConfig();
config.setProjectPath("your springboot project path"); // 项目根目录
config.setProjectName("ProjectName"); // 项目名称
config.setApiVersion("V1.0");       // 声明该API的版本
config.setDocsPath("your api docs path"); // 生成API 文档所在目录
config.setAutoGenerate(Boolean.TRUE);  // 配置自动生成
Docs.buildHtmlDocs(config); // 执行生成文档

接下来你只管好好写代码,生成Api文档的工作就可以交给JApiDocs了,你不需要再为额外编写和维护文档而烦恼。

功能特性

1、代码即文档

JApiDocs是通过直接解析SpringBoot的源码语法来工作的,所以只要Controller的语法符合一定的代码规范,有合理的注释,就可以直接导出文档。

2、支持导出HTML

便捷的导航和接口查看界面;可本地预览,或者部署到HTTP服务器。推荐部署到服务器,方便前后端展开协作。

3、同步导出客户端Model代码

支持导出Android端的 Java 和iOS端的 Object C Model代码,减少前端程序员的重复编码工作。

4、更多特性

支持接口搜索;支持不同版本和英文文档;自定义扩展等。

简洁的文档

再好用的东西,如果没有文档说明,别人也无从入手。为了让大家尽快上手,JApiDocs准备了一份极简的文档说明,确保你在几分钟就能用上JApiDocs。花5分钟不到就能认识一个提高工作效率的工具,让你把更多的时间花在更加有价值的事情上,你确认不看一下吗?

仓库地址:https://github.com/YeDaxia/JApiDocs

中文文档:https://japidocs.agilestudio.cn/#/zh-cn/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/601489.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

redis哨兵模式原理

概述 为了实现redis集群的高可用&#xff0c;redis经历了好几次迭代&#xff0c;从最开始的主从模式&#xff0c;到哨兵模式&#xff0c;再到现在的集群模式&#xff0c;可以说架构的优化越来越好&#xff0c;那本篇文章就介绍一下redis的哨兵模式&#xff0c;不过我司其实使用…

阿里云服务器部署flask简单方法

记录如何在阿里云服务器上部署flask接口并实现公网访问。 文章目录 1. 简介2. 部署python3环境3. 生成requirement.txt4. 将项目打包上传5. 安装依赖库6. 查看防火墙7. 测试能否公网访问 1. 简介 因落地通话callback服务测试&#xff0c;需要我写一个测试demo&#xff0c;用于…

Unity Shader中使用GLSL创建材质

目录 Unity Shader格式Properties怎么在脚本中使用类似于glUniform()的功能呢&#xff1f; SubShaderTagsLODpasspass内的tags说明pass内的代码段&#xff08;GLSL&#xff09;GLSL与CG语言的差异1. GLSL不可在外部定义结构体2. 在UnityShader中Uniform可以写在vert frag外面 S…

如何处理图片排重(精准排重,相似排重)

图片相似度对比 1、需求 假如有一个图片池&#xff0c;存有1亿图片。给一张目标图片&#xff0c;在图片池中做匹配。 判断一张图片是否在图片池中出现过。&#xff08;完全一样&#xff09;判断有没有相似的出现过。比如两张图相似度90&#xff0c;两张图片是在描述一件事情。 …

请推荐几个github上的vue的pc端项目?

前言 这是github上一些高收藏的vue PC端的项目&#xff0c;花了一点时间做了一下vue2和vue3的资源分类整理&#xff0c;可以根据自己的学习进度以及需求来选择对应的项目来研究&#xff0c;希望对你有帮助~ Vue2 PC项目 1、 Elemen Star&#xff1a;53.4k 是一个基于Vue.js…

【Unity Optimize】使用图集(Sprite Atlas)优化项目

目录 1 图集&#xff08;Sprite Atlas&#xff09;介绍2 创建与配置Sprite Atlas2.1 创建Sprite Atlas2.1.1 Unity2D项目2.1.2 Unity3D项目 2.2 配置Sprite Atlas2.3 注意事项 3 Sprite Atlas的接口4 Sprite Atlas的优化建议 1 图集&#xff08;Sprite Atlas&#xff09;介绍 …

vue3+element plus+vite 引入本地静态资源图片require报错的原因和解决方案,以及如何在表格中展示图片

文章目录 一、vue3element plusvite 引入本地静态资源图片require报错的原因和解决方案二、vue 3element plusvite 项目中&#xff0c;在el-table中展示本地静态图片总结 一、vue3element plusvite 引入本地静态资源图片require报错的原因和解决方案 在写vue3vite项目的过程中…

Java-代码连接数据库生成POJO、Mapper

本文主要介绍如何在IDEA中&#xff0c;编写代码连接数据库生成对应的POJO、Mapper、Service、Controller 文章目录 前言环境搭建代码开发基本配置常量信息代码生成 测试结果 前言 在实际开发中&#xff0c;设计完数据库后&#xff0c;不可避免需要创建数据库表对应的POJO&…

rt-thread汇总

finish和msh的区别&#xff1f; 这个问题我一直没搞懂&#xff0c;可能得看一下源码才能搞清楚了吧 通过Qemu运行RT-Thread 在windows上通过QEMU快速上手RT-thread smart RT-thread启动流程 rt-thread启动流程 Kconfig语法 Kconfig语法 LOG输出 rt_kprintf("Hello …

InsCode AI ,你的良师益友!

Chat-GTP的火爆程度相信大家已经听说了&#xff0c;也对它有一个基本的初识&#xff0c;它是Open AI所研发的&#xff0c;读者当中应该有不少人已经接触和体验人工智能聊天&#xff0c;以及使用它交流很多问题有关于生活&#xff0c;学习等&#xff0c;而 InsCode AI 也一样能够…

javaWeb ssh学堂在线管理系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

一、源码特点 java ssh学堂在线管理系统是一套完善的web设计系统&#xff08;系统采用ssh框架进行设计开发&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0…

30天从入门到精通TensorFlow1.x 第三天,tf.variable_scope()共享或重用变量

tf.variable_scope()共享或重用变量 文章目录 一、接前一天二、tf.variable_scope()共享或重用变量1. 背景2. 目的3. tf.variable_scope()基本参数3. tf.variable_scope()作用&#xff08;1&#xff09;.命名空间&#xff08;2&#xff09;.共享变量&#xff08;3&#xff09;.…

软考A计划-电子商务设计师-电子商务相关技术与应用基础知识

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分享&am…

cesium 相机相关

1 相机的初始位置 /*** The default rectangle the camera will view on creation.* type Rectangle*/ Camera.DEFAULT_VIEW_RECTANGLE Rectangle.fromDegrees(-95.0,-20.0,-70.0,90.0 );// set default view rectangleCameraPosition3D(this,Camera.DEFAULT_VIEW_RECTANGLE,…

Async 使用详解

Spring Boot异步调用Async 在实际开发中&#xff0c;有时候为了及时处理请求和进行响应&#xff0c;我们可能会多任务同时执行&#xff0c;或者先处理主任务&#xff0c;也就是异步调用&#xff0c;异步调用的实现有很多&#xff0c;例如多线程、定时任务、消息队列等&#xf…

若依框架快速搭建(二)

目录 数据库设计功能模块设计XXX信息管理xxx查询xxx添加xxx删除xxx修改xxx导出 功能模块实现运行数据库自动代码生成在IDEA中找到RuoYi-generator&#xff0c;修改配置运行前后端项目&#xff0c;在网页中找到代码生成模块导入表后点击确定&#xff0c;序号前打勾&#xff0c;再…

Mac - 光标特效 By CursorEffect2

目录 一.引言 二.安装 CursorEffect2 三.使用 CursorEffect2 四.使用效果 五.内存消耗 六.一键关闭 七.总结 一.引言 在自己搭建的 Hexo 博客上可以定义鼠标点击的特效&#xff0c;如图点击后可以产生彩色的斑点。 于是想着除了浏览 Hexo 博客外&#xff0c;能不能别的也…

【笔试强训编程题】Day1.(组队竞赛100449)和(删除公共字符69390)

作者简介&#xff1a;大家好&#xff0c;我是未央&#xff1b; 博客首页&#xff1a;未央.303 系列专栏&#xff1a;笔试强训编程题 每日一句&#xff1a;人的一生&#xff0c;可以有所作为的时机只有一次&#xff0c;那就是现在&#xff01;&#xff01;&#xff01;! 文章目录…

【CSS3系列】第一章 · CSS3新增的三种基本属性

写在前面 Hello大家好&#xff0c; 我是【麟-小白】&#xff0c;一位软件工程专业的学生&#xff0c;喜好计算机知识。希望大家能够一起学习进步呀&#xff01;本人是一名在读大学生&#xff0c;专业水平有限&#xff0c;如发现错误或不足之处&#xff0c;请多多指正&#xff0…

FineBI6.0基础学习第一课 数据门户

PC端门户使用示例 首先,以管理员身份登录FineBI系统,安装数据门户,安装步骤见官网 新建一个数据门户