前端脫離后端一[模擬后端接口Mockoon]


使用 Mockoon 軟件制造接口

文檔教程

文獻資料

api

您可以保留它並從此處構建,也可以創建一個新的。要創建新的模擬API,請打開左側的可折疊環境菜單,然后按藍色的“加號”按鈕,比如之前的接口端口3001,然后新建一個為3002

重命名環境

創建一個接口

模擬請求延遲的時間

設置請求頭

打開環境設置

勾選復選框啟用CORS選項。如果環境名稱旁邊顯示藍色盾牌,則表示該選項已成功激活。

將CORS標頭添加到環境鏈接將相同的CORS標頭添加到模擬API

設置 HTTPS模式

環境設置

HTTPS選項

重新啟動環境就能生效

修改請求的狀態和規則

添加請求的狀態和返回字段

設置請求的規則

or 或者 , and 且

當設置隨便返回的時候,規則將忽略

代理

這是是本地的照片到時候改改

我們就可以直接先開啟代理,然后把代碼的代理改成這個就可以啦

模板化

讓數據動起來

https://mockoon.com/docs/latest/templating/

小胡子語法

https://handlebarsjs.com/

Faker.js

{{faker 'address.cityPrefix'}}
參數的情況
{{faker 'random.number' 100}}

random

字母數字  長度
"{{faker 'random.alphaNumeric' 10}}"
boolean
{{faker 'random.boolean'}}
圖片
"{{faker 'random.image'}}"
環境
 "{{faker 'random.locale'}}"
number
參數最大值 0-最大值
{{faker 'random.number' 10}}
返回一堆字符串的的單個值
"{{faker 'random.objectElement' 'xxxx' }}"
uuid
 "{{faker 'random.uuid' }}"
單詞
 "{{faker 'random.word'}}"
單詞 幾個長度,默認1,3之間
"{{faker 'random.words'}}"
// 傳參10個單詞
 "{{faker 'random.words' 10}}"

commerce

價格
						// min max 小數點位數  前面的字符串
 "{{faker 'commerce.price' 10 20 4 'xxx'}}"

dummy-json

https://github.com/webroo/dummy-json

repeat

repeat 重復區域的值用於數組,會自動逗號隔開

{
 "messages": [
     //10個
  {{#repeat 10}}
  "hello"
  {{/repeat}}
   // 1-10
  {{#repeat 10 comma}}
  "hello"
  {{/repeat}}
   //第一個參數min 第二個參數max
  {{#repeat 5 8}}
   "hello"
   {{/repeat}}
   // 變量
   // @index:number 索引 @first:Boolean 第一個  @last:Boolean 最后一個 @total:number 長度
   {{#repeat 10}}
   //       number      boolean    boolean    長度number
   "hello-{{@index}}-{{@first}}--{{@last}}-{{@total}}"
   {{/repeat}}
]   
}
竟然可以這樣傳參
  {{#repeat (body 'A')}}

隨着分鍾變化的數組


{
  "count":{{now 'mm'}},
  "arr":[
  {{#repeat (now 'mm')}}
  {
    "test": "EMAIL_{{@index}}", 
    "status": true,
  }
  {{/ repeat }}
],

}

數字

整數
{{int 100 200}}
小數
{{float 10 20}}  

時間

//		開始   結束      格式化
{{date '2010' '2015' 'YYYY-MM-dd HH:mm:ss'}}
//  默認返回Date 類型
    {{date '2010' '2015'}}
小時
 "{{time '09:00' '17:00'}}"
看了issues
"{{ date '2020' '2021' 'yyyy-MM-dd\'T\'HH:mm:ss.SSS\'Z\'' }}"
原來模板內部可以 \'T\' 這樣進行拼接

雜七雜八

// 隨機boolean
{{boolean}}  
隨機標題前綴
{{title}}
名稱
{{firstName}}
{{lastName}}
公司
{{company}}
域名
{{domain}}
頂級域名
{{tld}}
電子郵件
{{email}}
街
{{street}}
市
{{city}}
國家
{{country}}
郵政編碼
{{zipcode}}
郵編
{{postcode}}
郵編
{{postcode}}

緯度
{{lat}}
生成從-90到+90的隨機緯度,到6個小數位(精度約為10cm)

經度
{{long}}
生成從-180到+180的隨機經度,到6個小數位(大約10cm的精度)

電話號碼
{{phone}}
顏色
{{color}}
十六進制顏色
"#{{hexColor}}"

32位GUID
{{guid}}

IPv4地址
{{ipv4}}

IPv6地址
{{ipv6}}
單詞
{{lorem}}

導入/導出數據

看官網當時沒理解意思,后面發現其實就是更新軟件或者換電腦什么的,用處就是把當前環境拷貝一份

模擬助手

參入參數的數組中一個隨機項
 "{{oneOf (array 'a' 'b' 'c')}}"
傳入參數的數組中返回一定返回的數組 min max
 "[{{ someOf (array 'item1' 'item2' 'item3') 0 3}}]"
測試

  "someItemsAsString": "{{ someOf (array 'item1' 'item2' 'item3') 1 2 }}",
   // "someItemsAsString": "item1,item2",   
  "someItemsAsArray": {{{ someOf (array 'item1' 'item2' 'item3') 1 2 true }}},
//  "someItemsAsArray": ["item3", "item2"],      

get問好傳參過來的值

?name=xxx

"{{queryParam 'name'}}"
// 查詢到時有值,查詢不到用默認的第三個參數
"{{queryParam 'names' 'default'}}"
// 返回復雜的值用格式 `key.0.key.5.key`

post 接受

"{{body 'name'}}"

多層判斷

   {{# switch (body 'id') }}
      {{# case "1" }}"John"{{/ case }}
      {{# case "2" }}"Jack"{{/ case }}
      {{# default }}"Peter"{{/ default }}
    {{/ switch}}

參數的操作,模擬分頁

post 提交的字段   {A:3}

{
  "count":{{body 'A'}},
  "arr":[
  {{#repeat (body 'A')}}
  {
    "test": "EMAIL_{{@index}}", 
    "status": true,
  }
  {{/ repeat }}
],

}
返回的參數
{
    "count": 3,
    "arr": [
        {
            "test": "EMAIL_0",
            "status": true,
        },
        {
            "test": "EMAIL_1",
            "status": true,
        },
        {
            "test": "EMAIL_2",
            "status": true,
        }
    ],
}

動態接口

cnblogs/:id/:name
返回查詢參數
{
  "arr":"{{urlParam 'id'}}",
  "name":"{{urlParam 'name'}}"
}

請求
http://localhost:3000/cnblogs/12/sex

{
    "arr": "12",
    "name": "sex"
}


動態接口的作用是為了模擬不同下載功能

代碼如何生成文件

我們思考一個文件,生成一個CSV文件

我們先思考生成CSV文件需要哪些語法

多個值用逗號分隔,就可以成表格的形式

我們可以用json寫好

firstname,lastname,countryCode
{{# repeat 10 }}
  {{ faker 'name.firstName' }},{{ faker 'name.lastName' }},{{ faker 'address.countryCode' }}
{{/ repeat}}

然后改成csv格式就行了

動態的輸出文件

假設我們編寫的兩個01,02.json文件

http://localhost:3000/ad/1或者2就可以動態的切換 

api

  • cookie 'cookie_name' 'default value':獲取Cookie的內容;如果不存在Cookie,則獲取默認值。
  • header 'Header-Name' 'default value':從任何請求標頭獲取內容,如果沒有標頭,則獲取默認值。
  • hostname:獲取請求主機名。
  • ip:獲取請求的IP地址。
  • method:獲取請求方法(GET,PUT,POST等)。
  • newline:添加換行符\n
  • base64 'string':將參數編碼為base64
  • objectId 'string' | number:創建一個有效的ObjectId。它可以基於指定的時間(以秒為單位)或作為種子的12字節字符串生成ObjectId

返回當前時間

"{{now 'YYYY-MM-DD HH-mm-ss'}}"  
具體復雜的操作查詢data-fns庫format的api

一個接口匹配不同的內容

上傳

{
  "name":"{{body}}"
}
可以拿到form-data 的數據,但是不能進行操作
在issues上面說不支持form-data的操作
這個也是糾結的點


免責聲明!

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



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