獨立開發者系列(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.pswp.cn/web/42174.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/42174.shtml
英文地址,請注明出處:http://en.pswp.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…