<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          再見(jiàn)Postman!一款更適合國(guó)人的接口管理工具!

          共 3904字,需瀏覽 8分鐘

           ·

          2021-12-01 00:58

          大家好,我是二哥呀!

          我們都知道在一個(gè)團(tuán)隊(duì)中是由很多角色組成的,例如:業(yè)務(wù)、產(chǎn)品、設(shè)計(jì)、前端、后端、測(cè)試。每個(gè)角色各司其職,一起合作完成項(xiàng)目的交付。

          而前端與后端的溝通則是需要通過(guò)一個(gè)統(tǒng)一的文件進(jìn)行溝通交流,即通過(guò)接口文檔事先約定好后端的接口返回內(nèi)容,然后大家就按照這個(gè)文檔約定完成前后端的開(kāi)發(fā)。并且一般接口文檔都是通過(guò)后端人員編寫的,維護(hù)流程也比較繁瑣。

          剛好今天有個(gè)小姐姐加我微信,說(shuō)是一款接口管理工具?ApiPost 的開(kāi)發(fā),并且說(shuō) ApiPost 的老板是我河南老鄉(xiāng),那其實(shí)這款工具二哥很早就體驗(yàn)過(guò)了,并且感覺(jué)真的非常不錯(cuò),這里就順帶給大家分享一下吧。

          ApiPost 包含了以下四種功能,同時(shí)具備接口調(diào)試,接口文檔,以及?Mock?工具,以及接口流程測(cè)試。

          ApiPost = API 接口調(diào)試工具 + 接口文檔快速生成 + Mock 工具 + 接口流程測(cè)試

          • API 接口調(diào)試工具:常見(jiàn)的有 Postman、Postwoman 等等

          • 接口文檔快速生成:常見(jiàn)的接口文檔工具有?Swagger?和?smart-doc,但是對(duì)代碼侵入性比較強(qiáng)。

          • Mock 工具:主要用于前端根據(jù)接口生成對(duì)應(yīng)的數(shù)據(jù),如?RAP?等工具。

          • 接口測(cè)試:常見(jiàn)的接口測(cè)試工具有?JMeter

          同時(shí)?ApiPost?也是國(guó)人開(kāi)發(fā)的一款接口管理工具,致力于打造更好用的、中文的、接口調(diào)試與文檔管理工具(簡(jiǎn)直是英語(yǔ)渣渣的福音~(yú))


          ApiPost首頁(yè)


          Api 接口調(diào)試

          代碼格式化

          接口調(diào)試是在開(kāi)發(fā)階段中使用最多的一個(gè)功能,利用 ApiPost 進(jìn)行常規(guī)的接口調(diào)試功能


          ApiPost 進(jìn)行常規(guī)的接口調(diào)試功能


          讓我感覺(jué)最舒服的是,對(duì)于返回的參數(shù)是可以進(jìn)行 Json 格式化的,下面是?Postman?自帶的?Pretty?功能 。


          Postman自帶的Pretty功能


          下面是?ApiPost?的?Json?格式化功能,并且通過(guò)右側(cè)的三角形,可以對(duì)數(shù)組元素進(jìn)行展開(kāi)或者合攏。在面對(duì)返回結(jié)果是一個(gè)數(shù)組,并且每個(gè)對(duì)象中字段很多的時(shí)候,這個(gè)功能就非常棒了。


          ApiPost的Json格式化功能


          沒(méi)有對(duì)比就沒(méi)有傷害,在看看?Postman?的輸出,每次只能把結(jié)果復(fù)制出來(lái),然后打開(kāi)?Json?在線格式化,才能夠看到返回的結(jié)果,簡(jiǎn)直增加了額外的負(fù)擔(dān)。

          Json 格式化:https://www.sojson.com/


          在線Json格式化


          全局參數(shù)

          同時(shí),還有一個(gè)讓我非常喜歡的點(diǎn),就是?全局參數(shù)。

          在上面的示例中,我們需要給接口填寫對(duì)應(yīng)的鑒權(quán)請(qǐng)求頭,才能夠請(qǐng)求后臺(tái)獲得數(shù)據(jù)。


          全局參數(shù)


          但在實(shí)際項(xiàng)目中,對(duì)于一批接口需要測(cè)試的時(shí)候,往往每個(gè)接口都需要填寫相同的鑒權(quán)請(qǐng)求頭,這樣過(guò)程會(huì)非常繁瑣。如果使用 ApiPost 的話,我們可以利用全局參數(shù)或者目錄參數(shù)實(shí)現(xiàn)。


          全局參數(shù)


          配置完成后,以后添加的接口,再次請(qǐng)求后臺(tái)時(shí),就會(huì)攜帶全局定義的請(qǐng)求頭過(guò)去。同理,還支持全局的?Query?以及?Body,可以把一些不變的請(qǐng)求參數(shù)都配置好全局參數(shù),這樣會(huì)讓我們編寫接口請(qǐng)求時(shí),省下很多時(shí)間~

          目錄參數(shù)

          同時(shí),我們還可以創(chuàng)建不同的目錄,用來(lái)區(qū)分項(xiàng)目接口所處的不同模塊。例如:以蘑菇博客為例,可以創(chuàng)建兩個(gè)目錄?mogu-admin?和?mogu-web,分別代表蘑菇博客的后端管理與門戶項(xiàng)目。

          蘑菇博客地址:https://gitee.com/moxi159753/mogu_blog_v2

          因?yàn)?,后臺(tái)管理和門戶是有兩套鑒權(quán)邏輯的,即上面提到的全局配置 token 就不能針對(duì)兩個(gè)場(chǎng)景生效了!

          那如果我還想同時(shí)測(cè)試 門戶類相關(guān)接口,或者是后臺(tái)管理相關(guān)接口,那怎么辦呢?

          這個(gè)時(shí)候就需要用到目錄參數(shù)了,它的作用和全局參數(shù)雷同,只是作用域不一樣,mogu-admin?目錄下的接口不會(huì)使用同級(jí)的 mogu-web 目錄的目錄參數(shù)作為發(fā)送參數(shù)。


          目錄參數(shù)


          通過(guò)對(duì)不同的目錄,配置不同的全局參數(shù),即可完美的解決剛剛的場(chǎng)景。

          同時(shí),當(dāng)全局參數(shù)、目錄參數(shù)、接口中都使用了同一個(gè)參數(shù)時(shí),最終會(huì)按照以下優(yōu)先級(jí)讀取參數(shù)值:

          單個(gè)接口 > 目錄參數(shù) > 全局參數(shù)

          如上面的示例,如果全局參數(shù)、目錄參數(shù)、接口中都定義了 header 參數(shù) token:

          全局參數(shù):token 值為:698d51a19d8a121ce581499d7b701668 // 最低優(yōu)先級(jí) 目錄參數(shù):token 值為:b50e345cc9febd86dedecc551ebcc505 // 其次優(yōu)先級(jí) 單接口參數(shù):token 值為:a1a9db893bb8a28ccb665d2af54d9417 // 最高優(yōu)先級(jí)

          那么最終發(fā)送的?token?值為:a1a9db893bb8a28ccb665d2af54d9417

          接口文檔快速生成

          點(diǎn)擊分享文檔,即可獲取對(duì)應(yīng)的文檔鏈接



          復(fù)制并打開(kāi)文檔地址就可以看到了完整的接口文檔。



          細(xì)心的小伙伴可能會(huì)發(fā)現(xiàn),這個(gè)請(qǐng)求參數(shù)上沒(méi)有相關(guān)字段的介紹,我們回到剛剛的?ApiPost?頁(yè)面,點(diǎn)擊?提取字段和描述,然后填入對(duì)應(yīng)的字段名稱。



          然后重新發(fā)布,即可看到每個(gè)字段的含義了



          有更細(xì)心的小伙伴,可能又會(huì)發(fā)現(xiàn),這里為啥缺了點(diǎn)返回值呢?那是因?yàn)?APIPOST 不會(huì)把發(fā)送后的實(shí)時(shí)響應(yīng)的數(shù)據(jù)作為響應(yīng)示例。這個(gè)時(shí)候,需要手動(dòng)的將實(shí)時(shí)響應(yīng)結(jié)果導(dǎo)入或者復(fù)制到對(duì)應(yīng)的成功響應(yīng)示例和錯(cuò)誤響應(yīng)示例。



          然后重新生成文檔,這個(gè)時(shí)候,就會(huì)包含我們的成功示例啦。



          同時(shí)還有對(duì)應(yīng)的返回值字段描述



          通過(guò)這個(gè)方法,可以隨時(shí)隨地的測(cè)試以及更新文檔,簡(jiǎn)直是后端小伙伴的福音~(yú)

          但是,不知道小伙伴們有沒(méi)有發(fā)現(xiàn)一個(gè)問(wèn)題,就是在生成接口文檔的時(shí)候,還是需要自己填寫參數(shù)描述。

          填寫參數(shù)描述是我們最煩惱的一件事情,尤其對(duì)于很多接口來(lái)說(shuō),往往具有大量相同名稱、相同意義的參數(shù),假如每次都需要手動(dòng)錄入,將會(huì)是一件非常耗時(shí)、低效的事情。

          這個(gè)時(shí)候,我們可以通過(guò)?ApiPost?參數(shù)描述庫(kù)解決這個(gè)問(wèn)題,通過(guò)自定義參數(shù)描述庫(kù),我們可以將本項(xiàng)目用到的大量參數(shù)進(jìn)行預(yù)注釋。



          并且,我們?cè)谔顚懲昴硞€(gè)描述后,會(huì)自動(dòng)同步到?參數(shù)描述庫(kù),以后如果匹配到了相同的名稱,會(huì)自動(dòng)生成對(duì)應(yīng)的描述,簡(jiǎn)直是一勞永逸的方法。

          Mock 工具

          我們都知道,在后端接口還沒(méi)有開(kāi)發(fā)完成的時(shí)候,接口是無(wú)法獲取數(shù)據(jù)的,那么前端小伙伴就需要通過(guò)?Mock?事先編寫好?API?的數(shù)據(jù)生成規(guī)則,由工具動(dòng)態(tài)生成?API?的返回?cái)?shù)據(jù)。通過(guò)訪問(wèn) Mock 來(lái)獲得頁(yè)面所需要的數(shù)據(jù),就可以輕松地完成對(duì)接工作。前后端人員只需要定義好接口文檔就可以開(kāi)始并行工作,互不影響,只在最后的聯(lián)調(diào)階段往來(lái)密切。

          ApiPost?可以讓你在沒(méi)有后端程序的情況下能真實(shí)地返回接口數(shù)據(jù),我們可以用 ApiPost 實(shí)現(xiàn)項(xiàng)目初期純前端的效果演示,也可以用?ApiPost?實(shí)現(xiàn)開(kāi)發(fā)中的數(shù)據(jù)模擬從而實(shí)現(xiàn)前后端分離。

          同時(shí),ApiPost?支持參數(shù)直接引用?mock.js?變量,點(diǎn)擊下方可以查看?內(nèi)置 Mock 字段變量?有哪些



          目前常用的內(nèi)置變量有以下幾種:

          • @guid():隨機(jī)生成一個(gè) GUID,例:DEfbBBBf-7A23-a4DB-9BB1-57BCFf5FB5fc

          • @integer(1,100):隨機(jī)生成一個(gè)?1 ~100?的整數(shù)

          • @datetime('yyyy-MM-dd HH:mm:ss'):返回一個(gè)隨機(jī)的日期和時(shí)間字符串。例:1977-11-17 03:50:15

          • @url("http"):生成隨機(jī)一個(gè)?http URL

          • @email():生成一個(gè)隨機(jī)?email?郵箱

          • @province():隨機(jī)生成一個(gè)中國(guó)省份(或直轄市、自治區(qū)、特別行政區(qū))

          • @city():隨機(jī)生成一個(gè)中國(guó)城市

          • @title():隨機(jī)生成一個(gè)標(biāo)題

          • @cname():隨機(jī)生成一個(gè)中文名稱

          • @cparagraph():隨機(jī)生成一段中文文本

          下面我們利用這些常見(jiàn)的?Mock?變量,來(lái)生成一個(gè)?Mock?服務(wù)吧。

          首先點(diǎn)擊?Mock 服務(wù),然后編輯?Mock 模板,右側(cè)即可看到我們實(shí)時(shí)生成的?Mock 數(shù)據(jù)?了



          在點(diǎn)擊上方的?復(fù)制鏈接?,即可把這個(gè)接口的?mock?請(qǐng)求交給前端小伙伴了,然后各種進(jìn)行合作開(kāi)發(fā)。

          測(cè)試流程

          流程測(cè)試是針對(duì)一個(gè)接口集合的測(cè)試,選擇相應(yīng)的環(huán)境,可以作為一系列請(qǐng)求一起運(yùn)行。當(dāng)您想要自動(dòng)化 API 測(cè)試時(shí),流程測(cè)試非常有用。點(diǎn)擊開(kāi)始,接口集合會(huì)并發(fā)的像服務(wù)器發(fā)出請(qǐng)求,最后會(huì)按照定義好的測(cè)試校驗(yàn)?zāi)K給出測(cè)試結(jié)果。對(duì)于測(cè)試同學(xué)來(lái)說(shuō),這是一個(gè)非常不錯(cuò)的功能。

          在 ApiPost 中,創(chuàng)建一個(gè)流程測(cè)試需要如下步驟:

          • 新建接口,并添加斷言
          • 打開(kāi)流程測(cè)試,新建一個(gè)流程
          • 向流程添加測(cè)試接口
          • 選擇環(huán)境,點(diǎn)擊開(kāi)始測(cè)試
          • 查看返回的測(cè)試接口

          流程測(cè)試界面如下圖:



          通過(guò)點(diǎn)擊接口名稱查看請(qǐng)求的請(qǐng)求和響應(yīng)參數(shù)信息



          同時(shí)在?ApiPost?中,還提供了很多內(nèi)置函數(shù),例如我們很輕松的就可以對(duì)某個(gè)變量進(jìn)行解密處理。



          更多關(guān)于?ApiPost?的功能,還等待小伙伴去發(fā)現(xiàn)。好啦,本期就到這里啦。


          分享的最后,二哥再嘮叨幾句。

          前段時(shí)間,有小伙伴留言說(shuō),秋招錯(cuò)過(guò)了,春招怎么辦?于是我在上周末整理匯總了一些 Java 面試相關(guān)的 PDF,質(zhì)量還是非常高的。

          如果能靜下心來(lái)抓住春招前這段時(shí)間,好好準(zhǔn)備一下,春招上岸應(yīng)該也是沒(méi)有什么大問(wèn)題的!

          如何獲取呢?

          點(diǎn)贊這篇文章,然后加我微信「qing_geee」備注「110」即可!

          (長(zhǎng)按掃碼識(shí)別)
          瀏覽 76
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  黄色视频大全在线免费观看 | 三级视频网站在线 | 亚洲乱码国产 | 精品多人P群无码视频 | 国产无码观看 |