<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Visual Studio - API調試與測試工具之HTTP文件

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

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

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

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

      01、.http文件創建方式

      .http文件有兩種創建方式:其一為通過添加文件,其二為通過終結點資源管理器生成。

      1、添加文件方式

      就像平時添加類文件一樣,通過選擇類庫右擊選擇添加,選擇新建項,然后找到HTTP文件選項,可以修改名稱最后點擊添加按鈕即可。

      2、終結點資源管理器生成方式

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

      打開后效果如下:

      然后我們可以任意選擇一個接口,右擊按鈕并點擊生成請求,即可自動創建.http文件并自動生成當前接口的默認請求示例,如下圖:

      02、.http 文件語法

      1、請求

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

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

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

      HTTPVersion: 此項為可選項,是指應用的HTTP版本,即 HTTP/1.1、HTTP/2 或 HTTP/3。

      當然一個.http文件中可以包含多個請求,可以通過###作為分隔符把多個請求分開

      POST https://localhost:5137/orders
      
      ###
      
      GET https://localhost:5137/orders?id=98006
      
      ###
      
      DELETE https://localhost:5137/orders HTTP/3
      
      ###
      

      2、請求頭、請求體

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

      常見的請求有請求內容類型、響應內容類型、編碼方式、緩存控制、內容類型、身份驗證、跨域請求等等。

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

      GET https://localhost:5137/orders
      Accept: application/json, text/html
      
      ###
      
      GET https://localhost:5137/orders
      Cache-Control: max-age=604800
      Age: 100
      
      ###
      

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

      GET https://localhost:5137/orders
      Content-Type: application/json
      
      {
        "id": "897",
        "date": "2024-12-24",
        "price": 5,
        "priceF": 2,
        "name": "小紅",
        "status": "Pending"
      }
      
      ###
      

      3、注釋、變量

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

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

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

      4、環境文件

      在實際開發過程中,針對開發環境、測試環境,甚至生產環境,我們需要對同一個變量提供不同的值,比如不同環境首先域名就不同,其次針對不同環境的測試數據也不同。

      這時候我們就可以使用環境文件,我們可以在.http文件所在的目錄中或者其父目錄中創建名為http-client.env.json的文件。如下代碼,我們創建了開發環境和生產環境兩個不同的域名。

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

      此時我們可以在.http文件窗口右上角進行切換不同環境。

      下面我們選擇pro環境進行測試一下,結果如下。

      可以看到此時域名讀取了正式環境域名。

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

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

      03、身份驗證

      可以說我們的每個后端接口都有相關認證授權,可能使用Jwt,OAuth令牌,API密鑰,用戶密碼等方式,這就導致我們平時測試的時候,需要先登錄,然后拿到相關的認證憑證,再去調相關的接口。

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

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

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

      //登錄
      # @name login
      POST {{Web_HostAddress}}/login
      Accept: application/json
      
      ###
      
      //查詢訂單
      @id=897
      GET {{Web_HostAddress}}/orders?id={{id}}
      Authorization: Bearer {{login.response.body.$.[0]}}
      
      ###
      

      需要注意的是,因為我們登錄即可是直接返回的字符串,所以這里使用的是login.response.body.$.[0],如果我們返回的是對象并且token是賦值在token字段上的,則應該使用login.response.body.$.token。

      并且當我們點擊查詢訂單接口請求上面的調試時,即使我們程序沒有運行起來,它也會自動運行,并且也會自動去執行登錄接口,拿到它所需的token,然后運行自身。

      而發送請求按鈕就必須要求程序運行起來以后才能生效。

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

      :測試方法代碼以及示例源碼都已經上傳至代碼庫,有興趣的可以看看。https://gitee.com/hugogoos/Planner

      posted @ 2024-12-25 00:53  IT規劃師  閱讀(1179)  評論(3)    收藏  舉報
      主站蜘蛛池模板: 国产国语一级毛片| 蜜臀一区二区三区精品免费| 99精品伊人久久久大香线蕉| 岛国最新亚洲伦理成人| 国产美女久久久亚洲综合| 国产精品成人一区二区三区| 国产精品一区在线蜜臀| 国产极品视频一区二区三区| 国产精品伦人视频免费看| 蜜臀久久精品亚洲一区| 乌拉特前旗| 最近免费中文字幕大全| 亚洲男人的天堂一区二区| 中文字幕国产精品av| 丰满少妇被猛烈进出69影院| 精品人妻av区乱码| 四虎国产精品永久地址99| 国产精品中文字幕视频| 久久久久国产精品人妻| 亚洲暴爽av天天爽日日碰| 国产欧美日韩亚洲一区二区三区| 亚洲午夜无码av毛片久久| 久热re这里精品视频在线6| 精品国产乱弄九九99久久| 四虎永久在线精品无码视频| 欧美亚洲h在线一区二区| 精品国产中文字幕第一页| 久久久久国产精品人妻| 国产成人亚洲日韩欧美| 亚洲人妻精品一区二区| 成人av亚洲男人色丁香| 丰满妇女强制高潮18xxxx| 极品人妻少妇一区二区三区| 国产精品中文字幕久久| 日韩有码中文字幕av| 麻豆天美国产一区在线播放| 国产性生大片免费观看性| 亚洲精品一区二区在线播| 国产三级国产精品久久成人| 亚洲AV天天做在线观看| 国产亚洲精品久久yy50|