色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

華納云:使用 WireMock 在開發和測試中模擬 API 服務

jf_98250943 ? 來源:jf_98250943 ? 作者:jf_98250943 ? 2024-10-25 16:46 ? 次閱讀

在本地開發和測試期間,經常會遇到您的應用依賴于遠程 API 的情況。網絡問題、速率限制,甚至 API 提供商的停機都可能阻礙您的進度。這會嚴重影響您的工作效率并使測試更具挑戰性。這就是 WireMock 發揮作用的地方。

WireMock 是一個開源工具,可以幫助開發人員創建模擬真實 API 行為的模擬服務器,為開發和測試提供受控環境。

假設您有一個 API 和一個前端應用,并且想要測試前端如何與 API 交互。使用 WireMock,您可以設置一個模擬服務器來模擬 API 的響應,這樣您就可以在不依賴實際 API 的情況下測試前端行為。當 API 仍在開發中或您想要在不影響實際 API 的情況下測試不同場景時,這會特別有用。WireMock 支持 HTTP 和 HTTPS 協議,可以模擬各種響應場景,包括延遲、錯誤和不同的 HTTP 狀態代碼。

在本指南中,您將學習如何:

使用 Docker 啟動 WireMock 容器。
在本地開發中使用模擬數據,無需依賴外部 API
在生產中使用 Live API 從 AccuWeather 獲取實時天氣數據。

將 WireMock 與 Docker 結合使用

WireMock 的官方 Docker 鏡像提供了一種部署和管理 WireMock 實例的便捷方式。WireMock 適用于各種 CPU 架構,包括 amd64、armv7 和 armv8,確保與不同設備和平臺兼容。您可以在 WireMock 文檔站點上了解有關 WireMock 獨立版的更多信息

先決條件

遵循本操作指南需要滿足以下先決條件:

Docker 桌面

啟動 WireMock

使用以下步驟啟動 WireMock 的快速演示:

在本地克隆 GitHub 存儲庫。

$ git clone https://github.com/dockersamples/wiremock-node-docker


導航到wiremock-endpoint目錄

$ cd wiremock-node-docker/


WireMock 充當后端與之通信以檢索數據的模擬 API。已在映射目錄中為您創建了模擬 API 響應。

通過在克隆的項目目錄的根目錄下運行以下命令來啟動 Compose 堆棧

$ docker compose up -d


片刻之后,應用程序將啟動并運行。

您可以通過選擇容器來檢查日志wiremock-node-docker:

測試 Mock API。

$ curl http://localhost:8080/api/v1/getWeather?city=Bengaluru


它將返回帶有模擬數據的以下預設響應:

{"city":"Bengaluru","temperature":27.1,"conditions":"Mostly cloudy","forecasts":[{"date":"2024-09-02T07:00:00+05:30","temperature":83,"conditions":"Partly sunny w/ t-storms"},{"date":"2024-09-03T07:00:00+05:30","temperature":83,"conditions":"Thunderstorms"},{"date":"2024-09-04T07:00:00+05:30","temperature":83,"conditions":"Intermittent clouds"},{"date":"2024-09-05T07:00:00+05:30","temperature":82,"conditions":"Dreary"},{"date":"2024-09-06T07:00:00+05:30","temperature":82,"conditions":"Dreary"}]}

使用 WireMock,您可以使用映射文件定義預設響應。對于此請求,模擬數據在 JSON 文件中定義 wiremock-endpoint/mappings/getWeather/getWeatherBengaluru.json。

有關存根預制響應的更多信息,請參閱 WireMock 文檔。

在開發中使用 WireMock

現在您已經嘗試了 WireMock,讓我們在開發和測試中使用它。在此示例中,您將使用具有 Node.js 后端的示例應用程序。此應用程序堆棧具有以下配置:

本地開發環境:Node.js 后端和 WireMock 運行的環境。
Node.js Backend:代表處理 HTTP 請求的后端應用程序。
外部 AccuWeather API:獲取實時天氣數據的真實 API。
WireMock:測試期間模擬 API 響應的模擬服務器。它作為 Docker 容器運行。

展示 WireMock 開發中的架構圖

在開發中,Node.js 后端向 WireMock 發送請求,而不是實際的 AccuWeather API。
在生產中,它直接連接到實時 AccuWeather API 獲取真實數據。

在本地開發中使用模擬數據

讓我們設置一個 Node 應用程序來向 WireMock 容器而不是實際的 AccuWeather API 發送請求。

先決條件

安裝 Node.js 和 npm
確保 WireMock 容器已啟動并正在運行(請參閱 啟動 Wiremock

按照以下步驟設置非容器化的 Node 應用程序:

導航到accuweather-api目錄

確保您位于package.json文件所在的目錄中。

設置環境變量。

打開目錄.env下的文件accuweather-api/。刪除舊條目并確保它只包含以下一行。

API_ENDPOINT_BASE=http://localhost:8080

這將告訴你的 Node.js 應用程序使用 WireMock 服務器進行 API 調用。

檢查應用程序入口點

該應用程序的主文件是index.js,位于accuweather-api/src/api目錄中。
此文件啟動getWeather.js模塊,這對您的 Node.js 應用程序至關重要。它使用dotenv包從文件中加載環境變量.env。
根據 的值API_ENDPOINT_BASE,應用程序將請求路由到 WireMock 服務器 ( http://localhost:8080) 或 AccuWeather API。在此設置中,它使用 WireMock 服務器。
代碼確保ACCUWEATHER_API_KEY僅當應用程序未使用 WireMock 時才需要,從而提高效率并避免錯誤。

啟動 Node 服務器

在啟動 Node 服務器之前,請通過運行確保已經安裝了 package.json 文件中列出的節點包npm install。

npm install
npm run start


您應該看到以下輸出:

> express-api-starter@1.2.0 start
> node src/index.js

API_ENDPOINT_BASE: http://localhost:8080
..
Listening: http://localhost:5001

輸出表明您的 Node 應用程序已成功啟動。保持此終端窗口打開。

測試模擬 API

打開一個新的終端窗口并運行以下命令來測試模擬的 API:

$ curl "http://localhost:5001/api/v1/getWeather?city=Bengaluru"


您應該看到以下輸出:

{"city":"Bengaluru","temperature":27.1,"conditions":"Mostly cloudy","forecasts":[{"date":"2024-09-02T07:00:00+05:30","temperature":83,"conditions":"Partly sunny w/ t-storms"},{"date":"2024-09-03T07:00:00+05:30","temperature":83,"conditions":"Thunderstorms"},{"date":"2024-09-04T07:00:00+05:30","temperature":83,"conditions":"Intermittent clouds"},{"date":"2024-09-05T07:00:00+05:30","temperature":82,"conditions":"Dreary"},{"date":"2024-09-06T07:00:00+05:30","temperature":82,"conditions":"Dreary"}]}%

這表明你的 Node.js 應用程序現在已成功將請求路由到 WireMock 容器并接收模擬響應

您可能已經注意到,您正在嘗試使用http://localhost:5001URL 而不是 port 8080。這是因為您的 Node.js 應用程序正在 port 上運行5001,并且它將請求路由到正在監聽 port 的 WireMock 容器8080。

顯示在 Docker Desktop 上運行的 WireMock 容器的日志的圖表

顯示在 Docker Desktop 上運行的 WireMock 容器的圖表

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 測試
    +關注

    關注

    8

    文章

    5469

    瀏覽量

    127436
  • API
    API
    +關注

    關注

    2

    文章

    1530

    瀏覽量

    62759
  • 開發
    +關注

    關注

    0

    文章

    370

    瀏覽量

    41056
  • 前端
    +關注

    關注

    1

    文章

    210

    瀏覽量

    17937
收藏 人收藏

    評論

    相關推薦

    華納香港服務器8H16G5M低至166元/月,首單直降!開春上開好局

    華納官網上線了開春大促活動,這次活動促銷涵蓋服務器、CN2服務器、大帶寬服務器、高防
    的頭像 發表于 02-13 14:11 ?87次閱讀

    開春特惠,華納香港8H16G5M低至166元/月,雙E5香港CN2服務器限時搶購ing

    開春特惠,華納香港8H16G5M低至166元/月,雙E5香港CN2服務器限時搶購ing 春節假期已結束,各行業逐步復工復產,香港IDC華納
    的頭像 發表于 02-12 16:59 ?152次閱讀

    騰訊率先上線DeepSeek模型API接口,支持聯網搜索

    近日,騰訊宣布了一項重要更新,正式上線了DeepSeek-R1及V3原版模型的API接口。這一舉措不僅展示了騰訊公有
    的頭像 發表于 02-10 09:47 ?508次閱讀

    服務器 Flexus X 實例:one-api 部署,支持眾多大模型

    本文通過 Flexus 服務器 X 實例 部署 one-api。Flexus 服務器 X 實例是新一代面向中小企業和
    的頭像 發表于 02-06 17:35 ?247次閱讀
    <b class='flag-5'>云</b><b class='flag-5'>服務</b>器 Flexus X 實例:one-<b class='flag-5'>api</b> 部署,支持眾多大模型

    基于華為 Flexus 服務器 X 部署的 CRMEB 商城系統中進行二次開發

    即用、體驗躍級、面向中小企業和開發者打造的高品價比服務產品。Flexus 服務器 X 實例是華為
    的頭像 發表于 02-06 15:51 ?109次閱讀
    <b class='flag-5'>在</b>基于華為<b class='flag-5'>云</b> Flexus <b class='flag-5'>云</b><b class='flag-5'>服務</b>器 X 部署的 CRMEB 商城系統中進行二次<b class='flag-5'>開發</b>

    華為 Flexus 服務器 X 實例下的 Redis 性能基準測試

    的杰出代表,展現了卓越的能力。 Flexus 服務器 X 實例是針對中小企業和開發者的下一代靈活計算
    的頭像 發表于 01-23 18:07 ?164次閱讀
    華為<b class='flag-5'>云</b> Flexus <b class='flag-5'>云</b><b class='flag-5'>服務</b>器 X 實例下的 Redis 性能基準<b class='flag-5'>測試</b>

    華為彈性服務器 FlexusX 實例下的 Nginx 性能測試

    目錄 ·?一、華為彈性服務器FlexusX實例簡介 ? ·?二、測試環境 ? ·?三、測試工具 ? ·?四、
    的頭像 發表于 01-17 09:17 ?595次閱讀
    華為<b class='flag-5'>云</b>彈性<b class='flag-5'>云</b><b class='flag-5'>服務</b>器 FlexusX 實例下的 Nginx 性能<b class='flag-5'>測試</b>

    HarmonyOS NEXT應用元服務開發Intents Kit(意圖框架服務)事件推薦開發測試

    意圖框架向開發者提供真機測試能力,即開發者可連接設備進行調測。開發者完成代碼開發之后,功能正式上架應用市場前,可以
    發表于 11-18 17:39

    鴻蒙原生開發手記:01-元服務開發

    限制 需要注意的時,部分 API 服務無法使用, HarmonOS 文檔里面,打開 API
    發表于 11-14 17:28

    api驅動的服務是什么意思?

    API驅動的服務是指利用API技術來驅動和提供服務的模式。在這種模式下,
    的頭像 發表于 11-14 10:06 ?311次閱讀

    使用API Post測試阿里物聯網平臺動態注冊

    使用API Post測試阿里物聯網平臺動態注冊
    的頭像 發表于 10-05 19:08 ?471次閱讀
    使用<b class='flag-5'>API</b> Post<b class='flag-5'>測試</b>阿里<b class='flag-5'>云</b>物聯網平臺動態注冊

    恒訊科技分析:使用顯卡服務器進行游戲開發有哪些優勢和劣勢?

    使用顯卡服務器進行游戲開發具有一系列的優勢和劣勢: 一、優勢: 1、高性能計算:顯卡服務器基于GPU的架構提供了強大的并行處理能力,這對
    的頭像 發表于 09-04 13:20 ?441次閱讀

    如何理解計算?

    計算的工作原理是什么? 計算和傳統IT技術的區別? 華納如何幫助您實現計算? 什么是
    發表于 08-16 17:02

    華為發布 CodeArts API,為 API 護航

    4 月 10 日,華為正式發布 API 全生命周期管理一體化協作平臺 CodeArts API,支持開發者高效實現 API 設計、
    的頭像 發表于 05-09 23:17 ?632次閱讀
    華為<b class='flag-5'>云</b>發布 CodeArts <b class='flag-5'>API</b>,為 <b class='flag-5'>API</b> 護航

    OpenAI API Key獲取與充值教程:助開發者解鎖GPT-4.0 API

    人工智能的浪潮,OpenAI 的 GPT-4.0 模型以其卓越的語言理解和生成能力引領了技術的新高潮。為開發者提供了強大的工具來創建更智能、更互動的應用。本文將詳細介紹如何獲取并充值
    的頭像 發表于 04-28 16:35 ?1.2w次閱讀
    OpenAI <b class='flag-5'>API</b> Key獲取與充值教程:助<b class='flag-5'>開發</b>者解鎖GPT-4.0 <b class='flag-5'>API</b>
    主站蜘蛛池模板: 精品视频网站 | 久久精品视在线-2 | 日本无码毛片久久久九色综合 | 人体内射精一区二区三区 | 母狗黄淑珍 | 亚洲一区在线观看视频 | 成人国产精品免费网站 | 国产色婷亚洲99精品AV | 奶水四溅54p| 一本久道久久综合婷婷五月 | 男人私gay挠脚心vk视频 | 国精产品砖一区二区三区糖心 | 波野结衣qvod | 欧美精品华人在线 | bbw美女与zooxx | 欧美巨大xxxx做受孕妇视频 | 99热在线免费观看 | 91久久偷偷看嫩草影院无费 | 久久99AV无色码人妻蜜 | 黑人巨大交牲老太 | 国产精品午夜福利在线观看 | 9277高清在线观看视频 | 调教椅上的调教SM总裁被调教 | 被爽到叫呻呤视频免费视频 | 亚洲AV无码影院在线播放 | 美女夫妻内射潮视频 | 女人高潮了拔出来了她什么感觉 | 99国产精品人妻无码免费 | 日产日韩亚洲欧美综合搜索 | 亚洲视频在线免费看 | 无码日韩人妻精品久久蜜桃入口 | 国产白丝精品爽爽久久久久久蜜臀 | 看全色黄大色大片免费久黄久 | adc影院在线 | 99re6久久热在线播放 | 国拍自产精品福利区 | 国产精品成人久久久久A伋 国产精品成人观看视频免费 | 玩高中女同桌肉色短丝袜脚文 | 中文字幕精品在线视频 | 亚洲乱码AV久久久久久久 | 99re6久久在热线视频 |