代替swagger的api接口神器

news2024/11/18 4:40:57

自动化API文档-APIFOX

文章作者:老杨

一:概述

大家在后端开发开发过程中,最痛恨的两天事情:1.写文档,2.别人不写文档。而我们后端开发,必定经历的事情就是要和前端&测试对接,我们需要把我们的业务接口告知他们,让前端和测试能:1.并行开发,2.对接联调实现完整功能,3.测试根据接口完成测试用例编写和测试,所以避免不了的就需要我们出接口文档。我们出文档又回归到了三种方式:1.手工编写(任务给谁,谁骂),2.swagger,3.侵入式注解。

  1. 手工编写,如果是开发前定好接口,避免不了的设计不到位,后期重复修改,还有会占用前期大量时间,小团队耗不起。
  2. Swagger和侵入式注解,都需要在我们的代码中额外增加各种注解,对我们的代码可读性来说,点都不友好。

swagger嵌入式生成文档案例:

来吧,吐槽把。为什么我还要把逻辑代码和文档注解写在一个地方?这跟在 html 里写样式代码有什么区别?

来吧,上正题,今天给各位IT精英推荐ApiFox,JavaDoc和Idea插件一体化。解决你的烦恼问题,初步预计,这会成为业务未来主流,大家值得使用。

二:实操

  1. Apifox idea 插件--Apifox Helper

注:如果下载不下来,重试几次

这个插件用起来挺简单的,关键在于,它把从代码到 API 文档的这一步,用最方便的办法解决了。API 相关的定义再也不需要用侵入式的方式写到代码注解里,而是清清爽爽地写成像这样的注释就可以了。

注释里面的 @param, @link, @return 这些就是标准的 Javadoc 注释,在 JDK 里定义好的,全球通用。

只要写好了 Javadoc,自动生成 API 文档就只需要三步。

第一步,从 IDEA 插件市场下载 Apifox Helper,配置好你的 Apifox 令牌。

注:令牌到官网去微信关注登录,然后在

第二步,在 IDEA 里点右键,【Upload to Apifox】,就能一键从你的代码生成 API 文档。

Upload to Apifox可以生成单个接口,也能一键把 Controller 里面的所有接口全部生成!甚至把整个项目上右键一起生成接口文档。

第三步,在 Apifox 里面分享文档。我就拥有了一个方便的,美观的,可以团队协作的,还能在线调试的,完美的 API 文档。

到此,你就可以像使用Postman一样在这里完成接口的查阅,测试。nice!

三:经验总结

  1. 写完一个接口,首先自测,不着急上传到文档。可以在代码里点右键【Call API】,就可以直接在 IDEA 里发起接口请求,特别爽!根本不需要用 Postman!

 

  1. 自测没问题了就可以点右键【Upload to Apifox】,如果是新写的接口,就会在 Apifox 里新增一个 API;如果是原本的接口有修改,就会自动更新已有的 API。
  2. 把前端和测试的同事都直接加进 Apifox 的项目团队里。这样,只要我这边上传了 API,他们在 Apifox 里面直接就能看得见,根本不需要我发一个 API 文档给他们。API 文档不但自动生成了,开发人员我根本不需要管它!
  3. 前端和测试可以直接用 Apifox 来调接口和做测试。如果接口有调整,我就直接在代码里改,然后重新 Upload 一下,前端和测试那边看到的接口就是最新的了。
  4. 如果 API 需要开放给外部的合作团队,这个时候就需要专门输出一个 API 文档了。我在 Apifox 的“在线分享”选择开放给他们的接口,配上环境,就是一个完美的 API 文档了,还能在线直接运行和生成代码。

三方公司打开链接即可查看:

文章结束,如果喜欢的话请给个好评,你的鼓励是我最大的动力谢谢。

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

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

相关文章

vue104-123

影院组件 更改滚动条范围: 动态结算高度 //动态结算高度 this.height document.documentElement.clientHeight-选项卡高度this.height document.documentElement.clientHeight- document.querySelector(footer).offsetHeight px组件库elementUI 网址elementUI…

Docker Compose编排

一、概念1、Docker Compose是什么Docker Compose的前身是Fig,它是一个定义及运行多个Docker容器的工具通过 Compose,不需要使用shell脚本来启动容器,而使用 YAML 文件来配置应用程序需要的所有服务然后使用一个命令,根据 YAML 的文…

Spring Boot课程评价管理系统

文章目录主要功能截图:主要代码展示数据库设计设计总结项目地址🍅 作者主页:Java韩立 🍅 简介:Java领域优质创作者🏆、【java韩立】公号作者✌ 简历模板、学习资料、面试题库【关注我,都给你】 …

handler解析(2) -Handler源码解析

目录 基础了解: 相关概念解释 整体流程图: 源码解析 Looper 总结: sendMessage 总结: ThreadLocal 基础了解: Handler是一套 Android 消息传递机制,主要用于线程间通信。实际上handler其实就是主线程在起了一…

聊聊并发与锁

持续坚持原创输出,点击蓝字关注我吧1.并发与并行并发可以充分地利用 CPU 资源,一般都会使用多线程实现。多线程的作用是提高任务的平均执行速度,但是会导致程序可理解性变差,编程难度加大。关于对并发与并行的概念,大家…

共享模型之无锁(三)

1.原子累加器 示例代码: public class TestAtomicAdder {public static void main(String[] args) {for (int i 0; i < 5; i) {demo(() -> new AtomicLong(0),(adder) -> adder.getAndIncrement());}for (int i 0; i < 5; i) {demo(() -> new LongAdder(),(…

C++复习笔记6

1.String类的实现 注意深浅拷贝&#xff0c; C语言字符串拼接函数strcat() #define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<vld.h> #include<assert.h> using namespace std;class String {friend ostream& operator<<(ostream &am…

【DSView逻辑分析抓取波形CAN步骤-硬件连接-数据解析-底层波形认识CAN-工具使用】

【DSView逻辑分析抓取波形CAN步骤-硬件连接-数据解析-底层波形认识CAN】1、概述2、实验环境3、写在前面的一个问题4、实验准备&#xff08;1&#xff09;硬件连接1&#xff09;CAN卡连接开发板&#xff08;2&#xff09;逻辑分析仪连接开发板&#xff08;2) CAN卡连接软件&…

Linux 文件锁 - fcntl

什么是文件锁&#xff1f; 即锁住文件&#xff0c;不让其他程序对文件做修改&#xff01; 为什么要锁住文件&#xff1f; 案例&#xff0c;有两个程序&#xff0c;都对一个文件做写入操作。 #include <unistd.h> #include <stdio.h> #include <stdlib.h> …

【集群】Slurm作业调度系统的使用

最近使用集群进行实验&#xff0c;记录并学习集群系统进行深度学习的实验过程。集群所使用的作业调度系统为Slurm&#xff0c;这里记录下使用的常用命令和一些注意事项。 Slurm简介 Slurm是一个开源&#xff0c;容错&#xff0c;高度可扩展的集群管理和作业调度系统&#xff0…

excel数据处理: 如何用99个空格提取单元格数据

脑洞大开&#xff0c;提取单元格数据用99个空格就成&#xff01;真想扒开那些大神的脑袋看看&#xff0c;是怎么想出这样匪夷所思的方法的。需要从规格型号中提取容值、封装、耐压三组数据&#xff0c;如下&#xff1a;数据源在A列&#xff0c;数据量很大&#xff0c;需要提取的…

微信小程序Springboot短视频分享系统

3.1小程序端 用户注册页面&#xff0c;输入用户的个人信息点击注册即可。 注册完成后会返回到登录页面&#xff0c;用户输入自己注册的账号密码即可登录成功 登录成功后我们可以看到有相关的视频还有视频信息&#xff0c;我的信息等。 视频信息推荐是按照点击次数进行推荐的&am…

Zabbix 构建监控告警平台(四)

Zabbix ActionZabbix Macros1.Zabbix Action 1.1动作Action简介 当某个触发器状态发生改变(如Problem、OK)&#xff0c;可以采取相应的动作&#xff0c;如&#xff1a; 执行远程命令 邮件&#xff0c;短信&#xff0c;微信告警,电话 1.2告警实验简介 1. 创建告警media type&…

9.语义HTMLVScode扩展推荐

语义HTML 定义&#xff1a; 一个元素使用我们并不是只关心他是什么样子的&#xff0c;而是要去关心这个元素名称的实际意义或者代表什么 我们使用标签并不是他仅代表导航栏&#xff0c;只是将导航栏部分归为一个块。现实生活中&#xff0c;多使用之前都是使用div这个元素去构…

删除有序数组中的重复项-力扣26-java

一、题目描述给你一个 升序排列 的数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使每个元素 只出现一次 &#xff0c;返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。由于在某些语言中不能改变数组的长度&#xff0c;所以必须将结果放在数组nums…

软件设计(九)

软件设计&#xff08;八&#xff09;https://blog.csdn.net/ke1ying/article/details/128954569?spm1001.2014.3001.5501 81、模块A将学生信息&#xff0c;即学生姓名、学号、手机等放到一个结构体系中&#xff0c;传递给模块B&#xff0c;模块A和B之间的耦合类型为 什么耦合…

【C++设计模式】学习笔记(1):面向对象设计原则

目录 简介面向对象设计原则(1)依赖倒置原则(DIP)(2)开放封闭原则(OCP)(3)单一职责原则(SRP)(4)Liskov替换原则(LSP)(5)接口隔离原则(ISP)(6)优先使用对象组合,而不是类继承(7)封装变化点(8)针对接口编程,而不是针对实现编程结语简介 Hello! 非常感谢您阅读海…

变分自编码器背后的直觉【VAE】

在阅读有关机器学习的内容时&#xff0c;你遇到的大部分材料可能都与分类问题有关。 你有一个特定的输入&#xff0c;ML 模型试图找出该输入的特征。 例如&#xff0c;分类模型可以决定图像中是否包含猫。 当你想创建具有预定义特征的数据时&#xff0c;反过来又如何呢&#x…

再不跳槽,就晚了

从时间节点上来看&#xff0c;3月、4月是每年跳槽的黄金季&#xff01; 以 BAT 为代表的互联网大厂&#xff0c;无论是薪资待遇、还是平台和福利&#xff0c;都一直是求职者眼中的香饽饽&#xff0c;“大厂经历” 在国内就业环境中无异于一块金子招牌。在这金三银四的时间里&a…

预处理指令详解

预处理指令详解**1.预定义符号****2.#define****2.1 #define 定义标识符****2.2 #define 定义宏****2.3 #define 替换规则****2.4 #和##****#的作用****##的作用****2.5 带副作用的宏参数****2.6 宏和函数的对比****宏和函数对比图****2.7 命名约定****3.#undef**4.条件编译4.1…