現代的Web應用程序開發通常涉及在前端和後端之間的鬆散耦合,經常由單獨的團隊處理。這可能導致同步挑戰。一種解決方案是模擬後端API,創建一個模仿預期行為的“假”服務器。這個過程被稱為嘲笑。理想情況下,嘲笑可以使前端發展獨立進行,而無需直接的後端依賴。儘管存在多種模擬方法,但這可能令人生畏。
本文展示了使用框架 - 不合Snostic方法(適用於任何框架或香草JavaScript)的有效API模擬及其在新應用或現有應用程序中的實現。
海市rage:客戶端模擬解決方案
我們將利用Miragejs,一個客戶端模擬框架。 Mirage在瀏覽器中運行,攔截XMLHttpRequest
並Fetch
請求以模擬API響應。它提供了一個用戶友好的界面,並簡化了模擬過程。
我們將使用VUE構建一個簡單的待辦事項應用程序(儘管該方法是獨立於框架的)。
建立海市rage
安裝Mirage:
#npm npm i miragejs -d #紗 紗線添加miragejs -d
最佳文件夾結構:
<code>/ ├── public ├── src │ ├── api │ │ └── mock │ │ ├── fixtures │ │ │ └── get-tasks.js │ │ └── index.js │ └── main.js ├── package.json └── package-lock.json</code>
創建api/mock/index.js
:
// api/mock/index.js 從'miragejs'導入{server}; 導出默認函數({Environment ='development'} = {}){ 返回新服務器({ 環境, 路由(){ //此處定義的路線 },, }); }
在您應用程序的Bootstrap文件中(例如, src/main.js
for Vue):
// main.js 從'./api/mock/index'導入CreateServer; if(process.env.node_env ==='開發'){ createserver(); }
此條件可確保超越海市rage樓,從生產製造中排除。
幻影如何工作
Mirage使用偽造者庫是客戶端。偽裝者攔截請求,阻止它們到達實際服務器並將其路由到模擬的Mirage服務器。 DevTools的網絡選項卡不會在內部處理時顯示Mirage請求。
處理請求
讓我們創建A /api/tasks
端點以獲取待辦事項項目(使用Axios):
//組件/任務 導出默認{ 異步創建(){ 嘗試 { const {data} =等待axios.get('/api/tasks'); this.tasks = data.tasks; }捕獲(e){ 控制台(E); } } };
最初,Mirage將記錄指示未定義路由的錯誤。我們通過在api/mock/index.js
中添加路由處理程序來解決此問題:
// api/mock/index.js 路由(){ this.get('/api/tasks',()=>({{ 任務:[[ {id:1,文字:“餵貓”}, {id:2,文字:“洗碗”}, ],, })); },,
Mirage支持各種HTTP方法( get
, post
,PAST, patch
, put
, delete
, options
)。
帶有Mirage數據層的動態數據
對於動態數據,Mirage提供了一個seeds
鉤和輕量級數據庫。讓我們重構:
// api/mock/index.js 種子(服務器){ server.db.loaddata({ 任務:[[ {id:1,文字:“餵貓”}, {id:2,文字:“洗碗”}, ],, }); },, 路由(){ this.get('/api/tasks',(schema)=> { 返回schema.db.tasks; }); this.post('/api/tasks',(架構,請求)=> { const task = json.parse(request.requestbody).data; 返回schema.db.tasks.insert(task); }); this.delete('/api/tasks/:id',(架構,請求)=> { const ID = request.params.id; 返回schema.db.tasks.remove(id); }); }
路由處理程序中的schema
參數可訪問Mirage數據庫。 request
參數包含請求詳細信息。
將幻影集成到現有應用程序中
要將Mirage集成到現有應用程序中,請使用passthrough()
方法處理未經手的請求:
路由(){ this.get('/api/tasks',()=> {...}); this.passTrough(); //處理未經處理的請求 }
您還可以指定自定義urlPrefix
:
路由(){ this.urlprefix ='https://devenv.ourapp.example'; this.get('/tasks',()=> {...}); }
這允許Mirage和真實API之間的無縫過渡。
結論
Miragejs提供了一種簡化的客戶端解決方案,用於API模擬,從而消除了對外部流程或服務器端知識的需求。它的易用性和功能強大的功能使其成為前端開發人員的寶貴工具。有關更多高級功能和教程,請參閱官方MirageJS文檔。可以在GitHub上找到一個工作示例。
以上是不要等待!模擬API的詳細內容。更多資訊請關注PHP中文網其他相關文章!

具有CSS的自定義光標很棒,但是我們可以將JavaScript提升到一個新的水平。使用JavaScript,我們可以在光標狀態之間過渡,將動態文本放置在光標中,應用複雜的動畫並應用過濾器。

互動CSS動畫和元素相互啟動的元素在2025年似乎更合理。雖然不需要在CSS中實施乒乓球,但CSS的靈活性和力量的增加,可以懷疑Lee&Aver Lee有一天會成為一種

有關利用CSS背景濾波器屬性來樣式用戶界面的提示和技巧。您將學習如何在多個元素之間進行背景過濾器,並將它們與其他CSS圖形效果集成在一起以創建精心設計的設計。

好吧,事實證明,SVG的內置動畫功能從未按計劃進行棄用。當然,CSS和JavaScript具有承載負載的能力,但是很高興知道Smil並沒有像以前那樣死在水中

是的,讓#039;跳上文字包裝:Safari Technology Preview In Pretty Landing!但是請注意,它與在鉻瀏覽器中的工作方式不同。

此CSS-tricks更新了,重點介紹了年鑑,最近的播客出現,新的CSS計數器指南以及增加了幾位新作者,這些新作者貢獻了有價值的內容。

在大多數情況下,人們展示了@Apply的@Apply功能,其中包括Tailwind的單個property實用程序之一(會改變單個CSS聲明)。當以這種方式展示時,@Apply聽起來似乎很有希望。如此明顯


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

禪工作室 13.0.1
強大的PHP整合開發環境