独立开发者系列(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,一经查实,立即删除!

相关文章

RxJava学习记录

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

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

【见刊通知】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相应的识…

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

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

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

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

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

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

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包中…

【AI大模型】赋能儿童安全:楼层与室内定位实践与未来发展

文章目录 引言第一章&#xff1a;AI与室内定位技术1.1 AI技术概述1.2 室内定位技术概述1.3 楼层定位的挑战与解决方案 第二章&#xff1a;儿童定位与安全监控的需求2.1 儿童安全问题的现状2.2 智能穿戴设备的兴起 第三章&#xff1a;技术实现细节3.1 硬件设计与选择传感器选择与…

SpringSecurity中文文档(Servlet Authorization Architecture )

Authorization 在确定了用户将如何进行身份验证之后&#xff0c;还需要配置应用程序的授权规则。 Spring Security 中的高级授权功能是其受欢迎的最有说服力的原因之一。无论您选择如何进行身份验证(无论是使用 Spring Security 提供的机制和提供者&#xff0c;还是与容器或其…

两张图片合并(右上角添加水印,兼容矢量图)保留原来的颜色

无缝合并两张图片&#xff08;封面右上角添加logo&#xff09;-- opencv &#xff1a; 进行添加logo(水印)由于使用了cv2.seamlessClone&#xff0c;cv2.seamlessClone使用了泊松克隆&#xff08;Poisson Cloning&#xff09;&#xff0c;会根据周围的颜色信息进行颜色调整&…

three-tile 一个开源的轻量级三维瓦片库

three-tile 介绍 three-tile 是一个开源的轻量级三维瓦片库&#xff0c;它基于threejs使用typescript开发&#xff0c;提供一个三维地形模型&#xff0c;能轻松给你的应用增加三维瓦片地图。 源码&#xff1a;https://github.com/sxguojf/three-tile 示例&#xff1a;https:/…

【TB作品】51单片机 Proteus仿真 00013红外proteus仿真循迹避障小车

实验报告&#xff1a;智能小车系统设计与实现 一、背景介绍 本实验旨在设计并实现一个基于STC89C52单片机控制的智能小车系统。该系统通过超声波传感器进行避障&#xff0c;通过红外接收器实现远程控制&#xff0c;同时具备循迹功能。整个系统的核心是单片机&#xff0c;它通…

YOLOv10改进 | 损失函数篇 | InnerIoU、InnerSIoU、InnerWIoU、FocusIoU等损失函数

一、本文介绍 本文给大家带来的是YOLOv10最新改进&#xff0c;为大家带来最近新提出的InnerIoU的内容同时用Inner的思想结合SIoU、WIoU、GIoU、DIoU、EIOU、CIoU等损失函数&#xff0c;形成 InnerIoU、InnerSIoU、InnerWIoU、等新版本损失函数&#xff0c;同时还结合了Focus和…

LeetCode42(接雨水)[三种解法:理解动态规划,双指针,单调栈]

接雨水 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 这是一道困难题,难度确实有点层次.我们先来朴素思想走一波. 要求能接多少雨水,我们可以具化到每个硅谷,每个硅谷能存多少雨水,那么答案就是每个…

PDA:Prompt-based Distribution Alignment for Unsupervised Domain Adaptation

文章汇总 式中&#xff0c; y s y^s ys表示源域数据的one-hot ground-truth&#xff0c; K K K为类数&#xff0c; w i w_i wi​和 z ~ s \tilde{z}_s z~s​分别表示源域经过提示调优的最终文本表示和最终图像表示的第 i i i类。 同理&#xff0c;为了进一步利用目标领域的数据…