宅男在线永久免费观看网直播,亚洲欧洲日产国码无码久久99,野花社区在线观看视频,亚洲人交乣女bbw,一本一本久久a久久精品综合不卡

全部
常見問題
產(chǎn)品動態(tài)
精選推薦

Visual Studio - API調(diào)試與測試工具之HTTP文件

管理 管理 編輯 刪除

后端開發(fā),我們對于Api接口調(diào)試測試大致有以下方法:單元測試、Swagger、Postman。

但是每種方式也都有其局限性,幾年前使用Visual Studio Code開發(fā)過一段時(shí)間,接觸了REST Client擴(kuò)展工具印象特別深刻,簡單、輕量、可編碼、與開發(fā)工具無縫銜接,整體效率相當(dāng)高。

在此之后我就一直在關(guān)注Visual Studio是否有類似的工具,直到最近發(fā)現(xiàn)Visual Studio 2022版本17.8開始支持類似REST Client擴(kuò)展工具相關(guān)功能了,雖然功能還不夠完善但是也基本夠用了。

今天和大家分享怎么通過.http文件便捷調(diào)試測試Api接口。

1fab8202501071603513071.png

一、.http文件創(chuàng)建方式

.http文件有兩種創(chuàng)建方式:其一為通過添加文件,其二為通過終結(jié)點(diǎn)資源管理器生成。

1、添加文件方式

就像平時(shí)添加類文件一樣,通過選擇類庫右擊選擇添加,選擇新建項(xiàng),然后找到HTTP文件選項(xiàng),可以修改名稱最后點(diǎn)擊添加按鈕即可。

c8911202501071604157468.png

2、終結(jié)點(diǎn)資源管理器生成方式

首先選擇視圖菜單,找到其他窗口,然后找到終結(jié)點(diǎn)資源管理器并點(diǎn)擊,即可打開。

27f52202501071604274416.png

打開后效果如下:

49c3f202501071604402021.png

然后我們可以任意選擇一個(gè)接口,右擊按鈕并點(diǎn)擊生成請求,即可自動創(chuàng)建.http文件并自動生成當(dāng)前接口的默認(rèn)請求示例,如下圖:
7a843202501071604503917.png

二、.http 文件語法

1、請求

HTTP請求格式為[HTTPMethod URL HTTPVersion]。

HTTPMethod: 表示HTTP方法包括增刪改查四大常見方法:GET、POST、PUT、DELETE,以及一些其他HTTP方法OPTIONS、HEAD、PATCH、TRACE、CONNECT;

URL: 表示發(fā)送請求的URL,即請求目標(biāo)URL,像正常方法URL一樣可以包含查詢字符串參數(shù);

HTTPVersion: 此項(xiàng)為可選項(xiàng),是指應(yīng)用的HTTP版本,即 HTTP/1.1、HTTP/2 或 HTTP/3。

當(dāng)然一個(gè).http文件中可以包含多個(gè)請求,可以通過###作為分隔符把多個(gè)請求分開

POST https://localhost:5137/orders

###

GET https://localhost:5137/orders?id=98006

###

DELETE https://localhost:5137/orders HTTP/3

###

2、請求頭、請求體

在實(shí)際請求中,我們不單單要指定請求方法,請求URL,還需要指定請求頭以及請求體。

常見的請求有請求內(nèi)容類型、響應(yīng)內(nèi)容類型、編碼方式、緩存控制、內(nèi)容類型、身份驗(yàn)證、跨域請求等等。

請求頭格式為[HeaderName: Value],一個(gè)請求頭類型占一行,可以有多個(gè)請求頭,并且每個(gè)請求頭之間不能有空白行,請求頭和請求行之間也不能有空白行。

GET https://localhost:5137/orders
Accept: application/json, text/html

###

GET https://localhost:5137/orders
Cache-Control: max-age=604800
Age: 100

###

請求體是指HTTP請求中攜帶的實(shí)際數(shù)據(jù),在請求行或者請求頭后空白行之后添加,示例如下:

GET https://localhost:5137/orders
Content-Type: application/json

{
  "id": "897",
  "date": "2024-12-24",
  "price": 5,
  "priceF": 2,
  "name": "小紅",
  "status": "Pending"
}

###

3、注釋、變量

注釋是以#或//開頭的行,可以加強(qiáng)代碼的可讀性。

變量是以@開頭的行,其語法格式為[@VariableName=Value],定義好變量后可以通過雙大括號{{ VariableName }}來使用變量,同時(shí)也可以使用已經(jīng)定義好的變量來定義新的變量。

@hostname=localhost
@port=5137
@host={{hostname}}:{{port}}
GET https://{{host}}/orders?id=98006

4、環(huán)境文件

在實(shí)際開發(fā)過程中,針對開發(fā)環(huán)境、測試環(huán)境,甚至生產(chǎn)環(huán)境,我們需要對同一個(gè)變量提供不同的值,比如不同環(huán)境首先域名就不同,其次針對不同環(huán)境的測試數(shù)據(jù)也不同。

這時(shí)候我們就可以使用環(huán)境文件,我們可以在.http文件所在的目錄中或者其父目錄中創(chuàng)建名為http-client.env.json的文件。如下代碼,我們創(chuàng)建了開發(fā)環(huán)境和生產(chǎn)環(huán)境兩個(gè)不同的域名。

{
  "dev": {
    "HostAddress": "http://localhost:5137"
  },
  "pro": {
    "HostAddress": "http://localhost:8888"
  }
}

此時(shí)我們可以在.http文件窗口右上角進(jìn)行切換不同環(huán)境。

a96a7202501071606308000.png

下面我們選擇pro環(huán)境進(jìn)行測試一下,結(jié)果如下。

09060202501071606498701.png

可以看到此時(shí)域名讀取了正式環(huán)境域名。

此時(shí)我們是可以把環(huán)境文件提交到代碼庫中和團(tuán)隊(duì)共享測試變量,那如果有些敏感的數(shù)據(jù)我們并不想提交到代碼庫和別人分享要怎么辦呢?

我們可以在環(huán)境文件同級目錄中創(chuàng)建http-client.env.json.user文件,它和環(huán)境文件編寫規(guī)則完全一樣,只是優(yōu)先級比環(huán)境文件優(yōu)先級更高。當(dāng)然我們需要在代碼管理的忽略文件.gitignore排查.user后綴的文件,防止其被意外提交至代碼塊。

三、身份驗(yàn)證

可以說我們的每個(gè)后端接口都有相關(guān)認(rèn)證授權(quán),可能使用Jwt,OAuth令牌,API密鑰,用戶密碼等方式,這就導(dǎo)致我們平時(shí)測試的時(shí)候,需要先登錄,然后拿到相關(guān)的認(rèn)證憑證,再去調(diào)相關(guān)的接口。

這意味著我們面臨一種情況,調(diào)用B接口需要依賴A接口的返回結(jié)果。首先答案很明確可以做到,要怎么做呢?

我們可以在A接口請求上面使用以下語法[# @name VariableName],來定義承載接口返回結(jié)果變量。

下面我們實(shí)現(xiàn)一個(gè)登錄接口,直接返回Jwt憑證即token字符串,然后使用這個(gè)token請求查詢訂單接口。

//登錄
# @name login
POST {{Web_HostAddress}}/login
Accept: application/json

###

//查詢訂單
@id=897
GET {{Web_HostAddress}}/orders?id={{id}}
Authorization: Bearer {{login.response.body.$.[0]}}

###

需要注意的是,因?yàn)槲覀兊卿浖纯墒侵苯臃祷氐淖址?,所以這里使用的是login.response.body.$.[0],如果我們返回的是對象并且token是賦值在token字段上的,則應(yīng)該使用login.response.body.$.token。

6c1e2202501071607233564.png

并且當(dāng)我們點(diǎn)擊查詢訂單接口請求上面的調(diào)試時(shí),即使我們程序沒有運(yùn)行起來,它也會自動運(yùn)行,并且也會自動去執(zhí)行登錄接口,拿到它所需的token,然后運(yùn)行自身。

而發(fā)送請求按鈕就必須要求程序運(yùn)行起來以后才能生效。

到這里.http文件使用就介紹完了,可以說基本夠用了,當(dāng)然還有很多地方需要完善的,比如說上傳文件,終結(jié)點(diǎn)資源管理器不能直接自動生成請求體結(jié)構(gòu)等等,相信要不了多久這些功能就會完善起來的,安心等待即可。

注:本文轉(zhuǎn)載自“IT規(guī)劃師”,如有侵權(quán),請聯(lián)系刪除!

請登錄后查看

哈哈哈醬 最后編輯于2025-01-07 16:17:49

快捷回復(fù)
回復(fù)
回復(fù)
回復(fù)({{post_count}}) {{!is_user ? '我的回復(fù)' :'全部回復(fù)'}}
排序 默認(rèn)正序 回復(fù)倒序 點(diǎn)贊倒序

{{item.user_info.nickname ? item.user_info.nickname : item.user_name}} LV.{{ item.user_info.bbs_level }}

作者 管理員 企業(yè)

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest == 1? '取消推薦': '推薦'}}
{{item.is_suggest == 1? '取消推薦': '推薦'}}
沙發(fā) 板凳 地板 {{item.floor}}#
{{item.user_info.title || '暫無簡介'}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
打賞
已打賞¥{{item.reward_price}}
{{item.like_count}}
{{item.showReply ? '取消回復(fù)' : '回復(fù)'}}
刪除
回復(fù)
回復(fù)

{{itemc.user_info.nickname}}

{{itemc.user_name}}

回復(fù) {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}
打賞
已打賞¥{{itemc.reward_price}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回復(fù)' : '回復(fù)'}}
刪除
回復(fù)
回復(fù)
查看更多
打賞
已打賞¥{{reward_price}}
809
{{like_count}}
{{collect_count}}
添加回復(fù) ({{post_count}})

相關(guān)推薦

快速安全登錄

使用微信掃碼登錄
{{item.label}} 加精
{{item.label}} {{item.label}} 板塊推薦 常見問題 產(chǎn)品動態(tài) 精選推薦 首頁頭條 首頁動態(tài) 首頁推薦
取 消 確 定
回復(fù)
回復(fù)
問題:
問題自動獲取的帖子內(nèi)容,不準(zhǔn)確時(shí)需要手動修改. [獲取答案]
答案:
提交
bug 需求 取 消 確 定
打賞金額
當(dāng)前余額:¥{{rewardUserInfo.reward_price}}
{{item.price}}元
請輸入 0.1-{{reward_max_price}} 范圍內(nèi)的數(shù)值
打賞成功
¥{{price}}
完成 確認(rèn)打賞

微信登錄/注冊

切換手機(jī)號登錄

{{ bind_phone ? '綁定手機(jī)' : '手機(jī)登錄'}}

{{codeText}}
切換微信登錄/注冊
暫不綁定
CRMEB客服

CRMEB咨詢熱線 咨詢熱線

400-8888-794

微信掃碼咨詢

CRMEB開源商城下載 源碼下載 CRMEB幫助文檔 幫助文檔
返回頂部 返回頂部
CRMEB客服