做一个合格的开发,从玩转Apipost开始

2023-11-07

前言

也是有一段时间没更文了,最近忙于跟生活对线。

今天给大家带来的是一个宝贝, Apipost。

这东西做啥用?这东西做啥用?这东西做啥用?这东西做啥用?

在了解这个apipost的作用之前,先听我说,谢谢你因为有你,温暖了四季。

身为后端研发的我们, 是不是有以下这些感受?

麻烦点

①写完接口,得自测,写测试用例测完,跟前端联调,跑测试用例每次得重启代码一轮 ,麻烦。

②写完接口,得编写接口文档,纠结怎么去排版弄格式,麻烦。

③写完接口,写完文档,跟前端调试,跟测试对峙,出来混要讲证据,每次都是把接口调用没问题的截图发过去,麻烦。

④写完接口, 写完文档,其他人如果也参与了,还得发文档过去给他们,一起改来改去,麻烦。

都是因为写接口,所以解决方案就是 : 不写接口 ,就可以。

ps:说到接口自测, 忍不住吐槽,接口基本带token或者一些固定请求头,请求参数。烦! 每次调试接口,都得整一遍这些玩意,也是麻烦。

还有那个websocket的自测,简直了,得自己单独写个测试页面或者去找专门的测试网站…

那么,今天带来的Apipost,上边提到的麻烦点,它都能帮我们解决。

正文

开始玩一玩这个Apipost。

我们今天一块玩的东西 :

① 模拟HTTP请求(其实也就是接口调试)

② 接口公共参数、环境全局参数的使用

③ 一键快速生成文档 (白嫖文档)

④ 团队协作,多人在线一块玩

⑤接口的性能测试

⑥接口调用代码生成 (白嫖代码)

最好大家跟着我使用客户端一块操作一下,动手,动手,动手!!

客户端下载地址(本篇文章用的客户端):

https://www.apipost.cn/download.html?token=4d1f96403929460350281516e7637ee9

apipost 官网

https://www.apipost.cn?token=4d1f96403929460350281516e7637ee9

Web版链接(不用下载):

https://console.apipost.cn/register?token=4d1f96403929460350281516e7637ee9

先贴一下日常工作的时候,我使用apipost的场景图:

 

① 模拟HTTP请求(其实也就是接口调试)

今天的砖依然烫手,忙活了一上午的陈师傅,复制粘贴出来了一个查询接口:

/**
 * @Author: JCccc
 * @Date: 2022-4-18 11:52
 * @Description:
 */

@RestController
public class UserController {

    @Autowired

    UserService userService;

    @GetMapping("/list")

    public Result<List<User>> list(UserQueryVO userQueryVO) {

        List<User> list = userService.list(userQueryVO);

        return new Result<>(200, "success", list);

    }

}

写完接口,打开apipost自测模拟一下接口调用:

ps:

提前预告,看到下面图的左边绿色(又绿了今天,加仓吗)框框里的目录没,录起来可以直接生成接口文档!后面会讲到,如果你急了,直接看后面第三点③.

 

可以看到,接口http请求模拟成功 (这返回数据界面清晰明了,还是因为我代码写得好啊):

 

当然,还可以模拟post、get、delete,还有patch、options、propfind、purge 请求等等,它会的太多了

特意点一下post请求 ,咱们平时用的也是很多 :

 

② 接口公共参数、环境全局参数的使用

上面接口http请求模拟,其实很多很多软件都能实现。

但是,我们平时系统的接口经常都是涉及到token校验的,还有一些公共的必传参数,例如当前语言环境标识这种。

一次又一次地去给每个接口的 Header ,加上 token 这个key 吗?

一次又一次地给每个接口带上公共参数 语言环境标识 lang 这个key 吗 ?

我现在需要调试 100个接口 ,我要加100次吗? 人生有多少个100次?

Apipost 来了! 它带着 公共参数库 来了!

直接选中 我们Apipost的 左边 api目录,你想在什么层级目录下的接口享受到这个公共参数,那就选择哪一个目录 :

 

然后就是 可以去设置 公共的请求头参数 ,公共的Query参数,公共的Body参数 :

立刻实践验证一下(知识点,@RequestHeader 可以直接拿请求头参数):

    @GetMapping("/list")
    public Result<List<User>> list(@RequestHeader("token")String token, UserQueryVO userQueryVO){

        System.out.println("token:"+token);

        List<User> list = userService.list(userQueryVO);

        return new Result<>(200,"success",list);

    }

可以看到,请求头里面的token ,香:

 

③ 一键快速生成文档 ,在线&导出(白嫖文档)

这是我最喜欢的一个功能点了。

想分享哪个目录下的接口,就点哪个,当然咱们也可以直接点击最外面的目录,也就是会生成整个项目的接口文档了;那又当然,我们如果想单独分享某个接口,也可以只点击某个接口做分享。

图示:

 

其实还有自由气息更高的,自定义分享:

自己看着想分享那些就勾选需要的目录就行,当然我们如果写的接口提前超过排期时间点了,那自然是需要适度分享的... 感觉我在教坏大家,这个自定义分享很贴心啊(嘿嘿)

 

分享的文章可以设置查看权限,支持 开放权限设置:

 

也支持密码权限设置:

 

分享出来的外网地址,直接访问,就可以看到在线文档:

 

每个目录的公共参数,一目了然:

 

生成的api接口排版简洁明了:

 

 

 然后是细节了,平时我们找文档里面的接口,也是麻烦得很(Apipost的设计者显然也是开发仔,量身定做了搜索功能):

 导出文档(支持各种格式,HTML、Word、MarkDown):

咱就是说,一键生成导出接口文档,然后任务排期是半天不过分吧,用好了软件,时间不就省下来了吗。

 ④ 团队协作,多人在线一块玩

也就是说我们这个是可以实时邀请其他人一块来玩的,也就是我一边调试,其他人也能一块一边调试。

ps:我们的Apipost是不需要登录也能使用的,但是如果需要协同工作,那自然就是需要登录了,因为有账号体系,可以方便追溯,方便管理。

界面右上角,点击邀请协作(想起之前用postman啊啊啊,都是导出,然后发给其他同事,他们自己导入再用。然后,我这边改了,又得导出,他们再导入。):

 

 

可以看到分了读写权限的概念,也就是说,这个很细节,假如你现在就是项目经理 (看客们,祝贺自己吧,看文章学着学着职级也升到经理了),哪些人可以看,哪些人能看能写,这个权限你可以把控。

⑤接口的性能测试

这个功能点也非常好,就是我们可以玩一些简单的性能压测,直接看实例:

我们反手录入一个接口:

 

然后对这个接口展开调用压测,看看稳不稳定:

 

当然还可以配合接口的mock一块用(这Apipost果真是为了协助考虑的,不仅仅对我们开发仔有考虑,还对我们的测试人员也是很贴心):

 

⑥接口调用代码生成 (白嫖代码)

这个功能我个人强推!

生成代码:

cURL方式的:

(意味着什么,那些本地有时候调试完,服务器上是不开放对外访问的,那么直接生成代码粘贴到服务器,一样可以调试...)

 

再看下我们选择java(java天下第一,不服评论区见) :

 

这个代码意味着什么?

如果说是我们调试第三方接口的时候,只要调通了,直接一键生成,然后复制粘贴到我们的项目里面(当作单测直接改都不用改),当作正式代码使用就稍微优化一下,这可是可视化编程啊啊啊啊!!!!

其他语言生成代码,不看! java就是世界上最好的语言。

ps :

补充一个纯吐槽的点

我是真的真的真的忍了postman一个点很久了,不知道大家有没有遇到过这个问题。

就是用postman,用着用着,某一天打开直接白屏了。 然后需要重新下载…

就光是这一点,如果你也被坑过,请你在评论区 立刻 !马上! 跟我产生一波共鸣

最后,其实...官网里面的使用教程也很细,而且还有视频教程,非常暖心。

虽然我的教程是最好的教程。(不过还有蛮多很好玩的东西我没一一介绍,所以大家还是可以去官网看看的)。

Apipost官网里面不仅有教程,也有相关的问答社区、博客社区,也算是一个比较好的摸鱼区学习地方。

 

apipost 官网 :

https://www.apipost.cn?token=4d1f96403929460350281516e7637ee9

客户端下载地址 :

https://www.apipost.cn/download.html?token=4d1f96403929460350281516e7637ee9

Web版在线使用地址(不用下载):

https://console.apipost.cn/register?token=4d1f96403929460350281516e7637ee9

OK,该篇就到这里吧。

如果看官们有什么东西也想分享的,欢迎评论留言讨论 ,也可以直接联系我。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

做一个合格的开发,从玩转Apipost开始 的相关文章

  • 在 JTable 中移动行

    我使用 MVC 模式 并且有一个如下所示的 JTable List
  • 如何使用 FileChannel 将一个文件的内容附加到另一个文件的末尾?

    File a txt好像 ABC File d txt好像 DEF 我正在尝试将 DEF 附加到 ABC 所以a txt好像 ABC DEF 我尝试过的方法总是完全覆盖第一个条目 所以我总是最终得到 DEF 这是我尝试过的两种方法 File
  • 如何在 JFace 的 TableViewer 中创建复选框?

    我创建了一个包含两列的 tableViewer 我想将其中一列设为复选框 为此 我创建了一个 CheckBoxCellEditor 但我不知道为什么它不起作用 名为 tableName 的列显示其值正常 色谱柱规格如下 String COL
  • 线程自动利用多个CPU核心?

    假设我的应用程序运行 2 个线程 例如渲染线程和游戏更新线程 如果它在具有多核 CPU 当今典型 的移动设备上运行 我是否可以期望线程在可能的情况下自动分配给不同的核心 我知道底层操作系统内核 Android linux内核 决定调度 我的
  • 解决错误:日志已在具有多个实例的atomikos中使用

    我仅在使用atomikos的实时服务器上遇到问题 在我的本地服务器上它工作得很好 我在服务器上面临的问题是 init 中出错 日志已在使用中 完整的异常堆栈跟踪 java lang RuntimeException Log already
  • 在数据流模板中调用 waitUntilFinish() 后可以运行代码吗?

    我有一个批处理 Apache Beam 作业 它从 GCS 获取文件作为输入 我的目标是根据执行后管道的状态将文件移动到两个 GCS 存储桶之一 如果管道执行成功 则将文件移动到存储桶 A 否则 如果管道在执行过程中出现任何未处理的异常 则
  • hibernate总是自己删除表中的所有数据

    您好 我正在开发一个 spring mvc 应用程序 它使用 hibernate 连接到存储文件的 mysql 数据库 我有两个方法 一个方法添加我选择的特定文件路径中的所有文件 另一种方法调用查询以返回从 mysql 存储的文件列表 问题
  • 如何将文件透明地传输到浏览器?

    受控环境 IE8 IIS 7 ColdFusion 当从 IE 发出指向媒体文件 例如 mp3 mpeg 等 的 GET 请求时 浏览器将启动关联的应用程序 Window Media Player 我猜测 IIS 提供文件的方式允许应用程序
  • 检查 Android 手机上的方向

    如何查看Android手机是横屏还是竖屏 当前配置用于确定要检索的资源 可从资源中获取Configuration object getResources getConfiguration orientation 您可以通过查看其值来检查方向
  • 从 android 简单上传到 S3

    我在网上搜索了从 android 上传简单文件到 s3 的方法 但找不到任何有效的方法 我认为这是因为缺乏具体步骤 1 https mobile awsblog com post Tx1V588RKX5XPQB TransferManage
  • 如何在 JFreeChart TimeSeries 图表上显示降雨指数和温度?

    目前 我的 TimeSeries 图表每 2 秒显示一个位置的温度 现在 如果我想每2秒显示一次降雨指数和温度 我该如何实现呢 这是我的代码 import testWeatherService TestWeatherTimeLapseSer
  • 尝试使用 Ruby Java Bridge (RJB) gem 时出现错误“无法创建 Java VM”

    我正在尝试实现 Ruby Java Bridge RJB gem 来与 JVM 通信 以便我可以运行 Open NLP gem 我在 Windows 8 上安装并运行了 Java 所有迹象 至少我所知道的 都表明 Java 已安装并可运行
  • 使用 AWS Java SDK 为现有 S3 对象设置 Expires 标头

    我正在更新 Amazon S3 存储桶中的现有对象以设置一些元数据 我想设置 HTTPExpires每个对象的标头以更好地处理 HTTP 1 0 客户端 我们正在使用AWS Java SDK http aws amazon com sdkf
  • 应用程序关闭时的倒计时问题

    我制作了一个 CountDownTimer 代码 我希望 CountDownTimer 在完成时重新启动 即使应用程序已关闭 但它仅在应用程序正在运行或重新启动应用程序时重新启动 因此 如果我在倒计时为 00 10 分钟 秒 时关闭应用程序
  • Tomcat 6找不到mysql驱动

    这里有一个类似的问题 但关于类路径 ClassNotFoundException com mysql jdbc Driver https stackoverflow com questions 1585811 classnotfoundex
  • 当单元格内的 JComboBox 中有 ItemEvent 时,如何获取 CellRow

    我有一个 JTable 其中有一列包含 JComboBox 我有一个附加到 JComboBox 的 ItemListener 它会根据任何更改进行操作 但是 ItemListener 没有获取更改的 ComboBox 所在行的方法 当组合框
  • 运行 Jar 文件时出现问题

    我已将 java 项目编译成 Jar 文件 但运行它时遇到问题 当我跑步时 java jar myJar jar 我收到以下错误 Could not find the main class myClass 类文件不在 jar 的根目录中 因
  • 如何测试 spring-security-oauth2 资源服务器安全性?

    随着 Spring Security 4 的发布改进了对测试的支持 http docs spring io spring security site docs 4 0 x reference htmlsingle test我想更新我当前的
  • 将2-3-4树转换为红黑树

    我正在尝试将 2 3 4 树转换为 java 中的红黑树 但我无法弄清楚它 我将这两个基本类编写如下 以使问题简单明了 但不知道从这里到哪里去 public class TwoThreeFour
  • KeyPressed 和 KeyTyped 混淆[重复]

    这个问题在这里已经有答案了 我搜索过之间的区别KeyPressedand KeyTyped事件 但我仍然不清楚 我发现的一件事是 Keypressed 比 KeyTyped 首先被触发 请澄清一下这些事件何时被准确触发 哪个适合用于哪个目的

随机推荐

  • GhostNet网络详解

    1 GhostNet网络 一张图片经过神经网络进行特征提取后 能够得到很多特征图 在特征图中会有一些相似性很高 这就是神经网络中存在的特征图冗杂的情况 如图中扳手相连的两幅特征图 作者认为可以对其中的一个特征图进行 Cheap Operat
  • vue全局自定义指令

    知识点 指令定义函数提供了几个钩子函数 可选 bind 只调用一次 指令第一次绑定到元素时调用 可以定义一个在绑定时执行一次的初始化动作 inserted 被绑定元素插入父节点时调用 父节点存在即可调用 不必存在于 document 中 u
  • 看穿式监管来了

    收藏关注 台电脑登录 个账号 或者 个账号 台电脑同时登录 会有什么后果 根据监管部门 关于加强证券期货经营机构客户交易终端信息等客户信息管理的规定 关于进一步加强期货经营机构客户交易终端信息采集有关事项的公告 的要求 我司正式启动交易终端
  • Java之集合(15个demo)

    本节主要介绍java的集合 主要包括List Set和Map 其中List的子类ArrayList和LinkedList Set的子类HashSet和TreeSet Map的字类HashMap等 介绍了集合的常用方法 Collections
  • 面试必备之Java 最常见 200+ 面试题全解析

    这篇文章主要介绍了面试必备之Java 最常见 200 面试题全解析 老王觉得挺不错的 现在分享给大家 也给大家做个参考 给准备面试的大家 特别总结了 Java 程序员面试必备的面试题库 共含208道面试题 涵盖十九个模块 从 Java 基础
  • List中移除指定元素

    例一 想在list中删除元素 先看下面的这一段代码 public class App2 public static void main String args List
  • opencv图像处理(加法运算)

    加法运算 import os import re import cv2 cv2 imshow image img 显示 cv2 waitKey 10000 停留 cv2 destroyAllWindows 关闭 from PIL impor
  • 大数据-Linux的常用命令

    一 Linux的目录结构 1 标黄的是我们一般常用的 其他的作为了解就好 2 Linux的命令有很多 我只挑了一些和大数据相关的写一下 命令格式 command options parameter 说明 command 命令名 相应功能的英
  • android四大组件(详细总结)

    Android四大组件分别为activity service content provider broadcast receiver 一 android四大组件详解 1 activity 1 一个Activity通常就是一个单独的屏幕 窗口
  • springboot mybaties Invalid bound statement (not found) 错误

    错误信息 org apache catalina connector RequestFacade 5151cc1f org apache ibatis binding BindingException Invalid bound state
  • No module named ‘rospy‘

    1 rospkg未安装 pip install rospkg 或 conda install rospkg 2 rospkg已安装 参考 为pycharm设置搜索路径 sunshine drizzle的博客 CSDN博客 以下适用于 pyc
  • 补码的除法运算

    补码的除法运算是将两个数都使用补码的形式来进行计算 和原码的除法相比 补码的除法运算中被除数 除数以及余数都采用双符号位的形式参与计算 最后得到的余数符号位就代表着最终结果的符号位 加减交替法 题目 假设机器字长为5位 x 0 1000 y
  • C++类中的三大函数(构造,析构,拷贝)

    下面一段话与大家共勉 每个人的一生都会遇到很多边界 有些边界可以突破 有些则不能 那些无法突破的边界就是你的极限 而划分边界的标准就是 阈值 每次突破阈值之后 人生轨迹就会发生剧烈变化 其间需要你做出很多思考和判断 直到最后找到自己的极限
  • 类模板特例化

    参考来源 C primer 中文版第5版 P626 1 举个例子 为标准库hash模板定义一个特例化版本 可以用它来将Sales data对象保存在无序容器中 默认情况下 无序容器使用hash
  • Rancher持续集成部署K8S集群的脚本

    文章目录 1 概要 2 安装 2 1 Rancher CLI安装 2 2 kubectl 安装 3 Rancher CLI 配置API Key 3 1 添加API key 3 2 测试API key 3 3 配置部署镜像的脚本 3 3 1
  • gcc常用命令的使用

    一 简介 gcc提供了30多条警告信息和3个警告级别 使用它们有助于增强程序的稳定性和可移植性 此外 gcc还对标准的C和C 语言进行了大量的扩展 提高了程序的执行效率 有助于编译器进行代码优化 能够减轻编程的工作量 二 gcc常用的编译选
  • 高性能MySQL实战(一):表结构

    最近因需求改动新增了一些数据库表 但是在定义表结构时 具体列属性的选择有些不知其所以然 索引的添加也有遗漏和不规范的地方 所以我打算为创建一个高性能表的过程以实战的形式写一个专题 以此来学习和巩固这些知识 一 实战 我使用的 MySQL 版
  • 计算机外部设备IO接口

    计算机外部设备IO接口 常见接口 术语 常见接口 接口 特点 USB 通用串行总线 Universal Serial Bus 高速率 热插拔 雏菊链 最新版本 USB 4 SCSI 小型计算机系统接口 Small Computer Syst
  • rocketmq安装、启动

    1 下载 gt wget http mirror bit edu cn apache rocketmq 4 4 0 rocketmq all 4 4 0 source release zip gt unzip rocketmq all 4
  • 做一个合格的开发,从玩转Apipost开始

    前言 也是有一段时间没更文了 最近忙于跟生活对线 今天给大家带来的是一个宝贝 Apipost 这东西做啥用 这东西做啥用 这东西做啥用 这东西做啥用 在了解这个apipost的作用之前 先听我说 谢谢你因为有你 温暖了四季 身为后端研发的我