独立开发者系列(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.mfbz.cn/a/785104.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

甄选范文“论区块链技术及应用”,软考高级论文,系统架构设计师论文

论文真题 区块链作为一种分布式记账技术,目前已经被应用到了资产管理、物联网、医疗管理、政务监管等多个领域。从网络层面来讲,区块链是一个对等网络(Peer to Peer, P2P),网络中的节点地位对等,每个节点都保存完整的账本数据,系统的运行不依赖中心化节点,因此避免了中…

MATLAB基础应用精讲-【数模应用】分层聚类(附python代码实现)

目录 前言 知识储备 层次聚类 1. 算法解读: 2. 步骤和细节: 3. 举例: 4. 算法评价: 5. 算法的变体: 算法原理 基本思想 分层聚类网络的原理 分层聚类网络的优势 分层聚类网络的应用领域 SPSSAU 分层聚类案例 1、背景 2、理论 3、操作 4、SPSSAU输出结果…

Johnson Counter

目录 描述 输入描述: 输出描述: 参考代码 描述 请用Verilog实现4位约翰逊计数器(扭环形计数器),计数器的循环状态如下。 电路的接口如下图所示。 输入描述: input clk , input …

[氮化镓]Kevin J. Chen组新作—肖特基p-GaN HEMTs正栅ESD机理研究

这篇文章是发表在《IEEE Electron Device Letters》上的一篇关于Schottky型p-GaN栅极高电子迁移率晶体管(HEMTs)的正向栅极静电放电(ESD)机理研究的论文。文章由Jiahui Sun等人撰写,使用了基于碳化硅(SiC&a…

设计模式探索:观察者模式

1. 观察者模式 1.1 什么是观察者模式 观察者模式用于建立一种对象与对象之间的依赖关系,当一个对象发生改变时将自动通知其他对象,其他对象会相应地作出反应。 在观察者模式中有如下角色: Subject(抽象主题/被观察者&#xf…

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

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

六、数据可视化—Wordcloud词云(爬虫及数据可视化)

六、数据可视化—Wordcloud词云(爬虫及数据可视化) 也是一个应用程序 http://amueller.github.io/word_cloud/ Wordcloud词云,在一些知乎,论坛等有这样一些东西,要么做封面,要么做讲解,进行分析…

Java并发/多线程CompleteableFuture详解

目录 CompleteableFuture 创建 获得结果的方法 辅助方法 allOf和anyOf的区别 CompletableFuture 里大约有五十种方法,但是可以进行归类: 变换类 thenApply 消费类 thenAccept 执行操作类 thenRun thenApply/thenAccept/thenRun 结合转化类 thenCombine 结…

浅析Nginx技术:开源高性能Web服务器与反向代理

什么是Nginx? Nginx是一款轻量级、高性能的HTTP和反向代理服务器,也可以用作邮件代理服务器。它最初由俄罗斯的程序员Igor Sysoev在2004年开发,并于2004年首次公开发布。Nginx的主要优势在于其非阻塞的事件驱动架构,能够处理大量并…

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

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

北森锐途人才竞聘盘点管理测评:高管领导力六大评判标准深度解析万达商管中国绿发等

北森锐途人才管理测评:高管领导力评判标准深度解析 在企业高管的盘点与竞聘测评领域,众多管理人才面临评估自身领导力的挑战。面对能力卓越、职级显赫的同僚,许多管理者感到缺乏一套权威且专业的评价体系。然而,无论是天赋异禀的领…

【回溯 - 1】46. 全排列

46. 全排列 难度:中等 力扣地址:https://leetcode.cn/problems/permutations/description/ 问题描述 给定一个 不含重复数字 的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1: 输入:nu…

ICMP隧道

后台私信找我获取工具 目录 ICMP隧道作用 ICMP隧道转发TCP上线MSF 开启服务端 生成后门木马 msf开启监听 开启客户端icmp隧道 执行后门木马,本地上线 ICMP隧道转发SOCKS上线MSF 开启服务端 生成后门木马 msf开启监听 开启客户端icmp隧道 ​执行后…

经常用借呗和花呗对征信有影响吗?

说起支付宝里的花呗和借呗,大伙儿肯定都不陌生,它们俩就像是支付宝里的信用贷款双胞胎,名字相近,性格却大相径庭。现在,这俩兄弟都乖乖地接入了央行的征信大家庭,你的每一次使用,都会被记录得清…

老师怎么快速发布成绩?

期末考试的钟声刚刚敲响,成绩单的发放却成了老师们的一大难题。每当期末成绩揭晓,老师们便要开始一项繁琐的任务——将每一份成绩单逐一私信给家长。这不仅耗费了大量的时间和精力,也让本就忙碌的期末工作变得更加繁重。然而,随着…

生产力工具|Endnote X9如何自动更新文件信息

一、以EndNote X9.2版本为例,打开EndNote文献管理软件。 二、在菜单栏找到“Edit→Preferences...”,点击打开,弹出一个“EndNote Preferences”窗口。 三、进行设置 在打开的窗口左侧选择“PDF Handing”,右边会出现自动导入文献…

SwiftUI知识点(二)

Animation import SwiftUIstruct AnimationBootcamp: View {State var isAnimation: Bool falsevar body: some View {VStack{Button("Button"){withAnimation(Animation.default//重复//autoreverses: true:A-B-A-B//false: A-B,A-B.repeat…

[图解]SysML和EA建模住宅安全系统-13-时间图

1 00:00:00,480 --> 00:00:02,280 首先,我们来看,图画在哪里 2 00:00:02,290 --> 00:00:04,380 这个图 3 00:00:04,390 --> 00:00:06,180 你看,它是描述,刚才讲的 4 00:00:06,190 --> 00:00:09,010 描述这个活动 …

STM32学习历程(day5)

EXTI外部中断 中断 中断就是在主程序运行过程中 出现了特定的中断触发条件(中断源),CPU会暂停当前的程序,去处理中断程序 处理完会返回被暂停的位置 继续运行原来的程序。 中断优先级 当有多个中断源同时申请中断时 CPU会根据…

设计模式之职责链模式(Chain of Responsibility Pattern)

1.概念 职责链模式(Chain of Responsibility Pattern):避免将请求发送者与接收者耦合在一起,让多个对象都有机会接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止…