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

接口的逻辑已经实现,需要对外发布接口,而发布接口的时候,我们需要能自己简单调试接口。当然,其实自己也可以写简单的代码调试自己的接口,因为其实就是简单的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.mzph.cn/web/42174.shtml

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

相关文章

如果MySQL出现 “Too many connections“ 错误,该如何解决?

当你想要连接MySQL时出现"Too many connections" 报错的情况下,该如何解决才能如愿以偿呢?都是哥们儿,就教你两招吧! 1.不想重启数据库的情况下 你可以尝试采取以下方法来解决: 增加连接数限制&#xff1a…

RxJava学习记录

文章目录 1. 总览1.1 基本原理1.2 导入包和依赖 2. 操作符2.1 创建操作符2.2 转换操作符2.3 组合操作符2.4 功能操作符 1. 总览 1.1 基本原理 参考文献 构建流:每一步操作都会生成一个新的Observable节点(没错,包括ObserveOn和SubscribeOn线程变换操作…

asp.netWebForm(.netFramework) CSRF漏洞

asp.netWebForm(.netFramework) CSRF漏洞 CSRF(Cross-Site Request Forgery)跨站请求伪造是一种常见的 Web 应用程序安全漏 洞,攻击者通过诱使已认证用户在受信任的网站上执行恶意操作,从而利用用户的身份 执行未经授权的操作。攻…

echarts实现3D饼图

先看下最终效果 实现思路 使用echarts-gl的曲面图&#xff08;surface&#xff09;类型 通过parametric绘制曲面参数实现3D效果 代码实现 <template><div id"surfacePie"></div> </template> <script setup>import {onMounted} fro…

简单的找到自己需要的flutter ui 模板

简单的找到自己需要的flutter ui 模板 网站 https://flutterawesome.com/ 简介 我原本以为会很难用 实际上不错 很简单 打开后界面类似于,右上角可以搜索 点击view github 相当简单 很oks

RabbitMq,通过prefetchCount限制消费并发数

1.问题:项目瓶颈,通过rabbitMq来异步上传图片,由于并发上传的图片过多导致阿里OSS异常, 解决方法:通过prefetchCount限制图片上传OSS的并发数量 2.定义消费者 Component AllArgsConstructor Slf4j public class ReceiveFaceImageEvent {private final UPloadService uploadSe…

【见刊通知】MVIPIT 2023机器视觉、图像处理与影像技术国际会议

MVIPIT 2023&#xff1a;https://ieeexplore.ieee.org/xpl/conhome/10578343/proceeding 入库Ei数据库需等20-50天左右 第二届会议征稿启动&#xff08;MVIPIT 2024&#xff09; The 2nd International Conference on Machine Vision, Image Processing & Imaging Techn…

MacOS和Windows中怎么安装Redis

希望文章能给到你启发和灵感&#xff5e; 如果觉得文章对你有帮助的话&#xff0c;点赞 关注 收藏 支持一下博主吧&#xff5e; 阅读指南 开篇说明一、基础环境说明1.1 硬件环境1.2 软件环境 二、MacOS中Redis的安装2.1 HomeBrew 安装&#xff08;推荐&#xff09;2.2 通过官方…

70.WEB渗透测试-信息收集- WAF、框架组件识别(10)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a; 易锦网校会员专享课 上一个内容&#xff1a;69.WEB渗透测试-信息收集- WAF、框架组件识别&#xff08;9&#xff09; 关于waf相应的识…

arcgis js 4.x实现类似openalayers加载tilewms图层效果

一、普通wms与tilewms区别 相同点&#xff1a;都是加载WMS服务。 不同点&#xff1a;TitleWMS会把当前可视窗口根据网格&#xff08;开发者可以在调用OpenLayers api的时候自定义&#xff09;切分&#xff0c;一片一片地返回回来&#xff0c;在前端进行整合。而ImageWMS则不会…

Springboot 配置 log4j 时的注意事项

感谢博主 https://www.cnblogs.com/fishlittle/p/17950944 依赖 SpringBoot 的 starter 自带的是 logback 日志&#xff0c;若要使用 log4j2 日志&#xff0c;需要引入对应依赖。logback 日志和 log4j2 日志都是对 slf4j 门面的实现&#xff0c;只能存在一个&#xff0c;且必…

江协科技51单片机学习- p25 无源蜂鸣器

&#x1f680;write in front&#x1f680; &#x1f50e;大家好&#xff0c;我是黄桃罐头&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流 &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd;​…

环信IM实现小米、oppo推送详细步骤

本文教大家集成环信IM后如何实现小米、oppo推送。 一、小米推送 步骤一、在小米开放平台创建应用。 在 小米开放平台 创建应用&#xff0c;开启推送服务。详见小米官方网站的 推送服务接入指南。 步骤二、上传推送证书。 注册完成后&#xff0c;需要在环信即时通讯云控制台…

WebSocket 双向通信

WebSocket 是一种在前端开发中用于实现双向通信的网络技术。它与传统的 HTTP 请求-响应模式不同&#xff0c;允许客户端和服务器之间实时、双向的数据传输。 1. 实时性 能够实现数据的即时推送和接收&#xff0c;无需轮询服务器&#xff0c;大大降低了延迟。 2. 双向通信 客…

LeetCode-刷题记录-前缀和合集(本篇blog会持续更新哦~)

一、前缀和&#xff08;Prefix Sum&#xff09;算法概述 前缀和算法通过预先计算数组的累加和&#xff0c;可以在常数时间内回答多个区间和相关的查询问题&#xff0c;是解决子数组和问题中的重要工具。 它的基本思想是通过预先计算和存储数组的前缀和&#xff0c;可以在 O(1)…

初步理解六__《面向互联网大数据的威胁情报 并行挖掘技术研究 》

初步理解 六 STIX 提出了一种标准化的网络威胁情报格式(Structured Threat Information eXpression, STIX) gtp STIX&#xff08;Structured Threat Information eXpression&#xff09;是一种用于标准化描述和共享网络威胁情报的格式和语言。它的设计目标是提供一个通用的…

7.8作业

一、思维导图 二、 1】按值修改 2】按值查找&#xff0c;返回当前节点的地址 &#xff08;先不考虑重复&#xff0c;如果有重复&#xff0c;返回第一个&#xff09; 3】反转 4】销毁链表 //按值修改 int value_change(linklistptr H,datatype e,int value) {if(HNULL||empty(H…

Greenplum(二)【SQL】

前言 Greenplum 的剩余部分主要其实主要就是 DDL 和之前学的 MySQL 不大一样&#xff0c;毕竟 Greenplum 是基于 PostgreSQL 数据库的&#xff0c;不过那些 DML 和 MySQL、Hive 基本上大差不差&#xff0c;所以就没有必要浪费时间了。 1、DDL 1.1、库操作 1.1.1、创建数据库…

python爬虫加入进度条

安装tqdm和requests库 pip install tqdm -i https://pypi.tuna.tsinghua.edu.cn/simplepip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple带进度条下载 import time # 引入time模块&#xff0c;用于处理时间相关的功能 from tqdm import * # 从tqdm包中…

算法力扣刷题 三十六【二叉树迭代遍历】

前言 记录三十五 介绍了二叉树基础&#xff0c;和递归法模版及遍历方式&#xff1b; 递归&#xff1a;代码简单&#xff0c;但要想清楚三步&#xff1a; 确定参数和返回值&#xff1b;确定终止条件&#xff0c;并return什么&#xff1f;&#xff1b;终止条件外的逻辑&#xf…