国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

3天內(nèi)不再提示

華納云:使用 WireMock 在開發(fā)和測試中模擬 API 服務(wù)

jf_98250943 ? 來源:jf_98250943 ? 作者:jf_98250943 ? 2024-10-25 16:46 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

WireMock 是一個開源工具,可以幫助開發(fā)人員創(chuàng)建模擬真實 API 行為的模擬服務(wù)器,為開發(fā)和測試提供受控環(huán)境。

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

在本指南中,您將學(xué)習(xí)如何:

使用 Docker 啟動 WireMock 容器。
在本地開發(fā)中使用模擬數(shù)據(jù),無需依賴外部 API
在生產(chǎn)中使用 Live API 從 AccuWeather 獲取實時天氣數(shù)據(jù)。

將 WireMock 與 Docker 結(jié)合使用

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

先決條件

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

Docker 桌面

啟動 WireMock

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

在本地克隆 GitHub 存儲庫。

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


導(dǎo)航到wiremock-endpoint目錄

$ cd wiremock-node-docker/


WireMock 充當后端與之通信以檢索數(shù)據(jù)的模擬 API。已在映射目錄中為您創(chuàng)建了模擬 API 響應(yīng)。

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

$ docker compose up -d


片刻之后,應(yīng)用程序?qū)硬⑦\行。

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

測試 Mock API。

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


它將返回帶有模擬數(shù)據(jù)的以下預(yù)設(shè)響應(yīng):

{"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,您可以使用映射文件定義預(yù)設(shè)響應(yīng)。對于此請求,模擬數(shù)據(jù)在 JSON 文件中定義 wiremock-endpoint/mappings/getWeather/getWeatherBengaluru.json。

有關(guān)存根預(yù)制響應(yīng)的更多信息,請參閱 WireMock 文檔。

在開發(fā)中使用 WireMock

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

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

展示 WireMock 開發(fā)中的架構(gòu)圖

在開發(fā)中,Node.js 后端向 WireMock 發(fā)送請求,而不是實際的 AccuWeather API。
在生產(chǎn)中,它直接連接到實時 AccuWeather API 獲取真實數(shù)據(jù)。

在本地開發(fā)中使用模擬數(shù)據(jù)

讓我們設(shè)置一個 Node 應(yīng)用程序來向 WireMock 容器而不是實際的 AccuWeather API 發(fā)送請求。

先決條件

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

按照以下步驟設(shè)置非容器化的 Node 應(yīng)用程序:

導(dǎo)航到accuweather-api目錄

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

設(shè)置環(huán)境變量。

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

API_ENDPOINT_BASE=http://localhost:8080

這將告訴你的 Node.js 應(yīng)用程序使用 WireMock 服務(wù)器進行 API 調(diào)用。

檢查應(yīng)用程序入口點

該應(yīng)用程序的主文件是index.js,位于accuweather-api/src/api目錄中。
此文件啟動getWeather.js模塊,這對您的 Node.js 應(yīng)用程序至關(guān)重要。它使用dotenv包從文件中加載環(huán)境變量.env。
根據(jù) 的值A(chǔ)PI_ENDPOINT_BASE,應(yīng)用程序?qū)⒄埱舐酚傻?WireMock 服務(wù)器 ( http://localhost:8080) 或 AccuWeather API。在此設(shè)置中,它使用 WireMock 服務(wù)器。
代碼確保ACCUWEATHER_API_KEY僅當應(yīng)用程序未使用 WireMock 時才需要,從而提高效率并避免錯誤。

啟動 Node 服務(wù)器

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

npm install
npm run start


您應(yīng)該看到以下輸出:

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

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

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

測試模擬 API

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

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


您應(yīng)該看到以下輸出:

{"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 應(yīng)用程序現(xiàn)在已成功將請求路由到 WireMock 容器并接收模擬響應(yīng)

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

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

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

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 測試
    +關(guān)注

    關(guān)注

    9

    文章

    6201

    瀏覽量

    131343
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    2368

    瀏覽量

    66752
  • 開發(fā)
    +關(guān)注

    關(guān)注

    0

    文章

    378

    瀏覽量

    42144
  • 前端
    +關(guān)注

    關(guān)注

    1

    文章

    243

    瀏覽量

    18810
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    什么是企業(yè)服務(wù)器-計算

    地擴展和管理其IT基礎(chǔ)設(shè)施。華納的企業(yè)服務(wù)器基于虛擬化技術(shù),環(huán)境
    的頭像 發(fā)表于 12-29 17:57 ?782次閱讀

    華納VPS容器服務(wù)網(wǎng)格流量管理:實現(xiàn)微服務(wù)高效路由

    計算和微服務(wù)架構(gòu)日益普及的今天,華納香港VPS憑借其優(yōu)越的地緣優(yōu)勢和網(wǎng)絡(luò)自由,成為眾多企業(yè)部署容器化應(yīng)用的熱門選擇。復(fù)雜的微
    的頭像 發(fā)表于 10-16 17:09 ?527次閱讀

    華納香港服務(wù)器數(shù)據(jù)庫索引優(yōu)化策略

    )實施有效的索引優(yōu)化策略。無論您是IT管理員還是開發(fā)人員,了解這些技巧都能幫助您優(yōu)化數(shù)據(jù)庫效率,確保業(yè)務(wù)高效運轉(zhuǎn)。下面,華納(hncloud)將通過結(jié)構(gòu)化分析,一步步解析香港服務(wù)器數(shù)
    的頭像 發(fā)表于 10-16 17:06 ?518次閱讀

    技術(shù)解讀:MCP協(xié)議以及SmartBear API HubMCP開發(fā)的關(guān)鍵作用

    MCP協(xié)議正成為AI集成的“基礎(chǔ)設(shè)施”。本文將帶你認識這一“AI界的USB-C”,并梳理SmartBear API Hub如何通過契約測試、雙向驗證和代碼生成,真正加速MCP開發(fā)
    的頭像 發(fā)表于 08-21 14:41 ?1282次閱讀
    技術(shù)解讀:MCP協(xié)議以及SmartBear <b class='flag-5'>API</b> Hub<b class='flag-5'>在</b>MCP<b class='flag-5'>開發(fā)</b><b class='flag-5'>中</b>的關(guān)鍵作用

    電商API的微服務(wù)架構(gòu)優(yōu)化策略

    ,電商API高并發(fā)、低延遲和數(shù)據(jù)一致性方面面臨嚴峻挑戰(zhàn)。本文將從基礎(chǔ)概念出發(fā),逐步分析優(yōu)化策略,幫助開發(fā)者構(gòu)建高性能、可靠的電商API系統(tǒng)。 1. 微
    的頭像 發(fā)表于 07-23 14:30 ?620次閱讀
    電商<b class='flag-5'>API</b>的微<b class='flag-5'>服務(wù)</b>架構(gòu)優(yōu)化策略

    全球API服務(wù)市場正快速增長,預(yù)計2026年市場價值將達 數(shù)十億美元

    API服務(wù)API as a Service)是一種計算模型,它提供了一種將應(yīng)用程序接口(API)作為
    的頭像 發(fā)表于 07-09 09:01 ?611次閱讀

    鴻蒙開發(fā)API9 到 API12,有哪些不同

    上傳圖片等與圖片相關(guān)的功能測試,而API12的模擬雖然有圖庫,但是并沒有圖片,需要使用一些“特殊手段”才能導(dǎo)入圖片測試相關(guān)功能 ?? 五
    發(fā)表于 06-29 22:47

    設(shè)計優(yōu)先方法論實踐:SmartBear API Hub +ReadyAPI組合使用,構(gòu)建高效的API開發(fā)

    設(shè)計優(yōu)先是一種在編寫代碼和執(zhí)行測試之前,優(yōu)先設(shè)計API接口的開發(fā)方式,能夠幫助提升團隊協(xié)作效率、加快開發(fā)進度、減少Bug和返工,并改善用戶體驗。如何實現(xiàn)?——將該與SmartBear
    的頭像 發(fā)表于 06-05 16:03 ?576次閱讀
    設(shè)計優(yōu)先方法論實踐:SmartBear <b class='flag-5'>API</b> Hub +ReadyAPI組合使用,構(gòu)建高效的<b class='flag-5'>API</b><b class='flag-5'>開發(fā)</b>流

    HarmonyOS5服務(wù)技術(shù)分享--函數(shù)預(yù)加載文章整理

    無縫對接HarmonyOS應(yīng)用,實現(xiàn)預(yù)加載等高級功能。如果你實踐過程遇到問題,歡迎評論區(qū)留言,或到華為開發(fā)者社區(qū)提問(記得帶上 #
    發(fā)表于 05-22 20:33

    HarmonyOS5服務(wù)技術(shù)分享--Serverless抽獎模板部署

    測試服務(wù)PTS 希望這篇教程能幫你快速上手!如果部署過程遇到問題,歡迎評論區(qū)留言交流~ 也歡迎關(guān)注我的技術(shù)博客,每周更新HarmonyOS開發(fā)
    發(fā)表于 05-22 20:25

    HarmonyOS5服務(wù)技術(shù)分享--存儲指南

    Hi各位開發(fā)者伙伴們!今天咱們來聊一聊HarmonyOS存儲的實戰(zhàn)玩法,手把手教你實現(xiàn)文件上傳、下載、元數(shù)據(jù)操作等核心功能。無需官方文檔的嚴肅感,咱們用最接地氣的方式搞懂這些API怎么用!(文末附
    發(fā)表于 05-22 19:17

    HarmonyOS5服務(wù)技術(shù)分享--存儲SDK文章整理

    HarmonyOS ArkTS應(yīng)用中集成華為存儲SDK指南 大家好呀!今天咱們來聊聊如何將華為存儲SDK集成到基于ArkTS(API 9-11)的HarmonyOS應(yīng)用
    發(fā)表于 05-22 19:09

    HarmonyOS5服務(wù)技術(shù)分享--ArkTS開發(fā)函數(shù)

    ) 最后說句掏心窩的話:本地調(diào)試真的能省下80%的打包等待時間,早用早輕松!開發(fā)過程中遇到任何問題,歡迎評論區(qū)拍磚交流~ ? 祝各位開發(fā)者調(diào)試順利,BUG退散!下次咱們再聊聊函數(shù)的
    發(fā)表于 05-22 17:29

    HarmonyOS5服務(wù)技術(shù)分享--ArkTS開發(fā)Node環(huán)境

    ? 你好呀,開發(fā)者小伙伴們!今天我們來聊聊如何在HarmonyOS(ArkTS API 9及以上)玩轉(zhuǎn)函數(shù),特別是結(jié)合Node.js和HTTP觸發(fā)器的
    發(fā)表于 05-22 17:21

    集成API設(shè)計+測試+文檔管理,全新一站式解決方案SmartBear API Hub功能介紹

    SmartBear全新推出API Hub,助力高效應(yīng)對API開發(fā)挑戰(zhàn)! API Hub專為API開發(fā)
    的頭像 發(fā)表于 04-08 17:52 ?854次閱讀
    集成<b class='flag-5'>API</b>設(shè)計+<b class='flag-5'>測試</b>+文檔管理,全新一站式解決方案SmartBear <b class='flag-5'>API</b> Hub功能介紹