不為人知easy-mock-cli


初識easy-mock-cli,始於一場緣分

在談及easy-mock-cli的時候,先說一下easy-mock是什么把?官方解釋是:Easy Mock 是一個可視化,並且能快速生成 模擬數據 的持久化服務。通俗易懂的話,就是假數據。使用的目的就是為了在前后端開發的過程中,前端會比后端先行一步,在還原完頁面就需要等后端的接口在去開發功能,這樣,就會造成前后端開發時間不同步,浪費開發的時候,mock的出現就解決了這個困境。前端在還原完頁面之后,可以根據與后端定義好的mock接口,進行開發。等后端開發完成之后,與后端聯調。項目大功告成,也沒有誰等誰,互相嫌棄的問題了。

easy-mock-cli 的自我介紹

Easy Mock 是一個可視化,並且能快速生成模擬數據的服務。以項目管理的方式組織 Mock List,能幫助我們更好的管理 Mock 數據,不怕丟失。
Easy Mock CLI 是一個基於 Easy Mock 快速生成 API 調用文件的命令行工具。
可以根據你mock的接口,結合axios生成的api層,一開始覺得真好啊,不用去一個個手寫api層,自動生成了mock中所有的,覺得真開心呀,省事省力,然后就開始用mock模擬數據,進行接口測試。

  • easy-mock-cli的安裝

      npm install -g easy-mock-cli
    
  • 創建配置文件 .easymockrc

   {
     "output": "api",
     "template": "axios",
     "projects": [
       {
         "id": "你要創建的 Easy Mock 項目的 id",
         "name": "demo"
       }
     ]
   }
![](https://img2018.cnblogs.com/blog/1323801/201907/1323801-20190725140456113-333562477.png)
  • 配置文件的參數
屬性名 描述 可空 類型 默認值
host 指定一個源,將在該源下獲取接口數據 true String https://www.easy-mock.com
output 生成 API 的基礎目錄(基於項目目錄,無需手動創建) true String easy-mock-api
template 指定一個 API 模板 false String
projects 項目列表 false Array
projects[id] Easy Mock 項目 id false String
projects[name] 項目名(開心就好,盡量簡單,不用中文) false String
projects[white] 白名單(只生成白名單中的接口) true Array[String]
projects[black] 黑名單(不生成黑名單中的接口) true Array[String]
  • 配置文件的命名格式
    支持以下文件格式

    • json
    • yml
    • ymal
    • js
  • 生成api層

    easymock init .
    
  • 結果如下:

  • 文件的介紹

    這個文件是根據你的mock自動生成的api層,注釋是你mock中對接口的描述,函數名是你路由和方法的拼接。

咱們在項目中使用的提供的axios模板,所以,他已經在util.js文件中創建了axios的實例,所以,咱們之前在assets中的axios.js就不生效了。需要在util.js中進行攔截器的處理。

mock聯調與yu后端聯調的battle

因接口規范規定,再獲取表格數據的時候,我們需要把分頁的信息拼接在路由上,但是我們在mock上制定的url是 /salary/support/divideProportion/proportion/page/size,但是真的在真機聯調的時候,我們傳給后端的是具體的page和size,所以,就造成mock與后端聯調造成不一致的問題。有沒有解決的方案,讓mock聯調與與后端聯調保持一致呢?這樣子,也不用為難我們前端了。easy-mock-cli中沒有詳細的介紹,如何解決。但是你看utils的文件 就能發現其中的奧妙。

上圖中的第一個函數creatAPI,就是為了生成api層的模板,第二個函數convertRESTAPI()就是為了在路由上拼接參數,通過path字段來標識,這對象中的數據是拼接在路由上的。
在項目中的使用:
mock接口的定義:

數據的請求:

在mock的接口地址中,需要使用{}來表明路由中的哪些字段是變量,在請求傳參的時候,需要用path字段來標識。

不經意間發現的驚喜

在post請求傳參的時候,發現在與后端的聯調過程中,參數傳不過去,好可怕呀,又要掉坑了!!axios的官網上的使用說明中,post 請求的參數 是通過data 來標識的,
如下:

而easy-mock-cli中沒有指定data參數,所以,咱們再數據請求傳參的時候,需要加data標識

這樣子,感覺終於能夠再mock聯調完之后,不用在去更改api層在去與后端聯調了。只要保證前后端開發的過程中,按着mock定好的接口,我們就可以很順利的聯調了。

自力更生,豐衣足食

除了使用 easy-mock-templates 提供的模板外,我們還可以自定義模板,以滿足不同的需求。如果你的業務需求,easy-mock-cli的模板不能滿足,就可以自己創建模板。關於他的介紹,在這里就不做太多的講解了。 可以看官方文檔學習一下:https://easy-mock.github.io/easy-mock-cli/#/?id=自定義模板

完美的ending

本篇博客介紹了easy-mock-cli如何在項目中使用,以及在使用的過程中遇見的坑。easy-mock-cli的兩大核心就是配置文件和API模板,首先要安裝好easy-mock-cli,然后配置你的mock的路徑,輸出文件,項目的名字和id。對項目進行初始化,這樣,生成api文件,你就離勝利只有一步之遙了。然后就要去看他util.js文件,通過看他的代碼來了解他的思想,因為他的官方文檔比較簡單的介紹了如何使用,而沒有具體的講解怎么避免與mock的聯調和與后端聯調 保持一致的問題。這種時候,就需要我們去看人家的源碼來理解。他是如何生成api層,如何通過axios進行數據的請求的。

突然發現在好多網站發現轉載,如需轉載請注明來源,本博客只為了與大家分享,謝謝。
轉載地址:https://i.cnblogs.com/EditPosts.aspx?postid=11242197


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM