独立开发者系列(22)——API调试工具apifox的使用

news2024/12/23 23:41:58

接口的逻辑已经实现,需要对外发布接口,而发布接口的时候,我们需要能自己简单调试接口。当然,其实自己也可以写简单的代码调试自己的接口,因为其实就是简单的request请求或者curl库读取,调整请求方式get或者post,最多其他的put/delete之类的,然后将data填入里面,就可以完成单个接口的请求。

       如果接口不多的情况下,自己直接用请求代码其实也挺方便的,因为可以实时请求获取接口,采用第三方的API调试工具,最大的一个问题是要多开一个软件,会频繁在开发和调试之间进行切换。但是当你接口足够多的时候,比如一般的项目,可能几百个接口的时候,你会发现普通自己请求查看结果的方法肯定行不通,需要一个接口管理工具。早期普遍推荐postMan 不过国内的apifox是仿照postman做的,功能大体差不多。这里以apifox为模板进行API的相关调试。
  基础结构划分:
  你可以创建各种大的团队,一般开发者手上都负责了几个大型的项目组,然后在每个项目组里面,又会有各个子项目的区分。所以可以先建立大项目组概念,然后再大项目组里面建立自己的子项目API。这样划分,你可以写非常多很清晰的API。

 

   这里主要总结相关使用技巧,一些基础的操作略过。

  1. 开发环境的配置,也就是不同的环境相关配置。基本我们的接口都是 /api/xian/immortal/index/actCheck 这种格式,前面变动的基本都是域名,这个时候我们在环境管理处,点击管理环境,就可以配置不同的环境,

本地mock,一般是自己的代码在本地开发,逻辑开发通过。一般分为本地电脑的本地环境(就是host指向自己电脑的情况)

开发环境,和线上环境保持一致,但是基本只给自己使用的环境,小型项目,一般不会区分开发环境和测试环境。

正式环境(线上环境,一般程序员已经无权改动代码,需要专门的运维人员对代码进行相关管理),给不同的环境指定不同的域名,这样在切换环境的时候,非常方便就切换到了对应环境。

  1. 全局变量和全局参数的配置使用
      全局变量,如果有个参数,需要一直保持的,比如有的token是在API里面的,每次请求都必须带上的参数,就可以加进去。

  全局参数,非常有用,很多参数的接口,都是需要限制reffer来源的,防止被搜索引擎爬虫接口直接请求,这种需要在后端接口请求来源里面添加对应网址。当前的接口绝大部分都会限制请求来源。同样,如果确定对应项目数据格式是application/json 这样直接在全局参数的头部里面设置即可。如果是模拟本地的用户登录情况,需要用到cookie,也在全局设置里面直接加上cookie,这样不用每个API都加上接口去请求。

   在以前我不懂这个技巧的时候,我特意为每个环境都创建了三个不同的子目录,每个不同的子目录,都接进去了不同的URL,值得注意的是如果请求链接是http开头,是会忽视掉你的全局配置的。这导致我写接口文档的工作量直接翻倍了。后面才发现,原来直接全局配置就可以,完全不需要配置相同的参数。

而且对于测试环境绕过登录而言,只要约定一个token,在全局那修改掉,其他接口不需要改,就可以跟着全部改,工作量大幅度减少。

  1. 接口的新增 根据你接口的定义改成post或者get 需要注意的是,需要在body里面定义好请求的远程数据格式。否则发出去的请求,远程服务器经常接收不到的,比如WX的API,你只能使用raw发送过去,其他格式的发送,拿不到你的数据,返回的结果是错误的。

其他的你直接从全局继承,如果需要单独设置,或者调试其他接口,只要在这个URL里面直接加上http的链接即可。

如果你的API是需要进行鉴权处理的,打开auth即可

  1. 如果你是想通过接口发送文件测试(这个功能用的比较少,但是要用的时候,很多人不知道)典型的场景,就是你写了个储存文件的API接口,需要测试上能不能上传文件。

同样对于 第三方提供的远程图片上传验证,也需要对接口进行基础的简单调试。这个时候,我们上传的参数类型,需要设置成form-data (支持多种格式上传),同时发送的类型是file,而且file是可以支持一次性发送多个文件的,只要不超过远程文件的最大上传范围。

  1. 自动化测试
      非专业的测试,很少用到这个功能,但是掌握这个基础的自动化测试,可以减少一些连招,比如下单后调用支付,然后查看订单的详情,这个组合功能,在测试的时候,经常是需要一起的,所以你需要将这三个接口封装成一个小组。更复杂的自动化测试,就是登录获取token,然后获取商品列表,然后获取商品的id,同时自动购买,下单然后查看详情。

 

  1. 定时任务,apifox是拥有定时任务功能的
      如果是在自己电脑上,要定时运行某个简单的任务。在远程部署比较麻烦,可能需要短时间内运行下,然后就撤掉,你设置一个请求的API,然后设置跑1W次,每次间隔3秒,理论上你电脑挂着,就是一直在跑这个定时任务。当然你也可以用代码本身实现,我之前一个场景是修复用户的错误订单,但是不能批量修复,比较慢,我就使用了一个定时任务的最用户进行注册错误订单信息修复,也是非常实用的功能。 这个适合短时间的自动跑任务。
  2. API接口分享 这个是使用该工具的核心原因,就是你可以把你的接口直接开放给上下游,让他们随时看到你的API开发进度,在常规的开发里面,如果你不是一个人写完所有的代码,需要另外一个人跟你同时启动开工,一般是调用接口的人和你是实时联动,增加项目的开发速度。

当然,APIfox也支持邀请成员,一起写作开发,注册后,基本就可以一起加入进行开发。

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

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

相关文章

第11章 规划过程组(二)(11.10制订进度计划)

第11章 规划过程组(二)11.10制订进度计划,在第三版教材第395~397页;文字图片音频方式 第一个知识点:定义及作用 分析活动顺序、持续时间、资源需求和进度制约因素,创建项目进度模型,从而落实项目…

基于单片机的太阳能热水器控制系统设计

随着我国经济水平的不断提高,民众对生活质量的追求也在不断进步,对于现代家庭而言,热水器成为了必备的生活电器。目前市面上的电器主要是电热水器、燃气热水器以及太阳能热水器。就能源节约性能而言,太阳能热水器占据了绝对优势&a…

01day C++初入学习

这里写目录标题 1.C区别于C的输入输出2.什么是命名空间3. namespace的定义namespace的使用(1)namespace嵌套使用(2)多⽂件中可以定义同名namespace(3) 4.命名空间的使用5.C输⼊&输出6.缺省参数7.函数重载8.引用8.1引用的特性8.3引用的使用 1.C区别于C的输入输出 #include&…

接口调用的三种方式

例子: curl --location http://110.0.0.1:1024 \ --header Content-Type: application/json \ --data {"task_id": 1 }方式一:postman可视化图形调用 方式二:Vscode中powershell发送请求 #powershell (psh) Invoke-WebRequest -U…

探展2024世界人工智能大会之令人惊艳的扫描黑科技~

文章目录 ⭐️ 前言⭐️ AIGC古籍修复文化遗产焕新⭐️ 高效的文档图像处理解决方案⭐️ AIGC扫描黑科技一键全搞定⭐️ 行业级的知识库大模型加速器⭐️ 结语 ⭐️ 前言 大家好,我是 哈哥(哈哥撩编程),这次非常荣幸受邀作为专业…

科研绘图系列:R语言分组柱状图一(Grouped Bar Chart)

介绍 分组柱状图(Grouped Bar Chart)是一种数据可视化图表,用于比较不同类别(分组)内各子类别(子组)的数值。在分组柱状图中,每个分组有一组并列的柱子,每个柱子代表一个子组的数值,不同的分组用不同的列来表示。 特点: 并列柱子:每个分组内的柱子是并列的,便于…

python-24-零基础自学python while循环+交互+数据的存储

学习内容:《python编程:从入门到实践》第二版 知识点: 文件处理 with open()while 练习内容:10章练习题10-3、10-4、10-5 练习10-3:访客 编写一个程序,提示用户输入名字。用户做…

Redis基础教程(十五):Redis GEO地理信息查询与管理

💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 💝&#x1f49…

jQuery 笔记

一、什么是jQuery 框架:半成品软件 Jquery就是封装好的js 本质上还是js jQuery是一个快速、简洁的JavaScript**框架**,是继Prototype之后又一个优秀的**JavaScript代码库**(*或JavaScript框架*)。 JQuery:封装好的代码库。有一…

树莓派_Pytorch学习笔记20:初步认识深度学习框架

今日继续学习树莓派4B 4G:(Raspberry Pi,简称RPi或RasPi) 本人所用树莓派4B 装载的系统与版本如下: 版本可用命令 (lsb_release -a) 查询: ​ Python 版本3.7.3: ​ 本文很水,就介绍一下我以后的学习使用P…

全志A527 T527 android13支持usb摄像头

1.前言 我们发现usb摄像头在A527 android13上面并不能正常使用,需要支持相关的摄像头。 2.系统节点查看 我们查看系统是否有相关的节点生成,发现/dev/video相关的节点已经生成了。并没有问题,拔插正常。 3.这里我们需要查看系统层是否支持相关的相机, 我们使用命令进行…

前端传到后端的data数组中有些属性值为空

将前端输入框中的值全部放入data中传入后端,但是在后端查看发现后端接收到的数据有些属性值为空。 第一种情况:只有第一个属性为空,其余属性接收正常 可能原因:后端用来接收的 比如前端发送数据: 实际上前端发送的数…

Java | Leetcode Java题解之第224题基本计算器

题目&#xff1a; 题解&#xff1a; class Solution {public int calculate(String s) {Deque<Integer> ops new LinkedList<Integer>();ops.push(1);int sign 1;int ret 0;int n s.length();int i 0;while (i < n) {if (s.charAt(i) ) {i;} else if (s…

政安晨:【Keras机器学习示例演绎】(五十三)—— 使用 TensorFlow 决策森林进行分类

目录 简介 设置 准备数据 定义数据集元数据 配置超参数 实施培训和评估程序 实验 1&#xff1a;使用原始特征的决策森林 检查模型 实验 2&#xff1a;目标编码决策森林 创建模型输入 使用目标编码实现特征编码 使用预处理器创建梯度提升树模型 训练和评估模型 实验…

FastReport 指定sql,修改数据源 ( 非DataSet修改 )

FastReport 指定sql&#xff0c;修改数据源&#xff0c;非DataSet修改 介绍报告文件&#xff1a; codetest.frx 文件核心代码&#xff1a;&#xff08;扩展&#xff09;小结一下&#xff1a; 介绍 在FastReport中&#xff0c;经常会遇到需要给 sql 加条件的情况。 &#xff0…

k8s 部署 metribeat 实现 kibana 可视化 es 多集群监控指标

文章目录 [toc]环境介绍老(来)板(把)真(展)帅(示)helm 包准备配置监控集群获取集群 uuid生成 api_key配置 values.yaml 配置 es 集群获取集群 uuid 和 api_key配置 values.yaml 查看监控 缺少角色的报错 开始之前&#xff0c;需要准备好以下场景 一套 k8s 环境 k8s 内有两套不同…

jvisualvm工具使用--添加远程监视

jvisualvm简介 jvisualvm该工具位于jdk的bin目录下&#xff0c;是jdk自带的可用于监控线程、内存情况、查看方法的CPU时间和内存中的对 象、已被GC的对象、反向查看分配的堆栈等&#xff0c;即&#xff1a;Java虚拟机监控、故障排查及性能分析工具。 远程监控方法 以windows端…

ProFormList --复杂数据联动ProFormDependency

需求&#xff1a; &#xff08;1&#xff09;数据联动&#xff1a;测试数据1、2互相依赖&#xff0c;测试数据1<测试数据2,测试数据2>测试数据1。 &#xff08;2&#xff09;点击添加按钮&#xff0c;添加一行。 &#xff08;3&#xff09;自定义操作按钮。 &#xff0…

后端之路——登录校验前言(Cookie\ Session\ JWT令牌)

前言&#xff1a;Servlet 【登录校验】这个功能技术的基础是【会话技术】&#xff0c;那么在讲【会话技术】的时候必然要谈到【Cookie】和【Session】这两个东西&#xff0c;那么在这之前必须要先讲一下一个很重要但是很多人都会忽略的一个知识点&#xff1a;【Servlet】 什么是…

Android约束布局的概念与属性(2)

目录 3&#xff0e;链式约束4&#xff0e;辅助线 3&#xff0e;链式约束 如果两个或以上控件通过下图的方式约束在一起&#xff0c;就可以认为是他们是一条链&#xff08;如图5为横向的链&#xff0c;纵向同理&#xff09;。 图5 链示意图 如图5所示&#xff0c;在预览图中选…