天天看點

你知道如何使用json-server搭建JSON伺服器嗎?

作者:尚矽谷教育

作為一個前端開發工程師,在後端還沒有給我們接口的時候,我們大多數情況都是寫一些死資料來作為占位,但這樣我們無法測試是否真的能調用資料,我們可以利用json-server起一個本地的服務,到時候後端給我們接口的時候,我們在把API換成後端給我們的接口。我們隻需要提供一個json檔案,填充一些資料就可以模拟出RESTful API的接口。

一、啟動伺服器

node環境安裝

json-server 需要通過 npm 下載下傳,npm 依賴在 node 中。

注意:node 版本一定要 12 以上。不然會報以下錯誤:

json-server requires at least version 12 of Node, please upgrade

全局安裝json-server

建議全局安裝,因為以後你可能會對 json-server 産生依賴。全局安裝方式:

npm install -g json-server

建立資料庫

建立一個 json 檔案,再填入資料即可。建立的json檔案中,必須要有id屬性,否則後續發送請求時會報錯。

你知道如何使用json-server搭建JSON伺服器嗎?

啟動服務

進入目前目錄,打開終端輸入以下指令即可

json-server --watch stu.json --port 5656

你知道如何使用json-server搭建JSON伺服器嗎?

二、伺服器接口的調用

2.1 查(get)

json-server 查詢資料需要使用 GET 方法。剛剛我們建立了2個接口,我們可以直接在浏覽器、postman或者自己寫JS代碼擷取資料。

例如:

http://localhost:5656/stus

你知道如何使用json-server搭建JSON伺服器嗎?

ID查詢

http://localhost:5656/stus/{id}

你知道如何使用json-server搭建JSON伺服器嗎?

條件查詢

1.單一條件查詢

查找 name 為 徐飛 的所有資料。

http://localhost:5656/stus?name=徐飛

你知道如何使用json-server搭建JSON伺服器嗎?

2.多條件查詢(且)

這次要篩選的是 name = 張飛 且 age = 12 的資料,符合條件篩選的時候,使用 & 号添加條件。

http://localhost:5656/stus?name=張飛&age=12

你知道如何使用json-server搭建JSON伺服器嗎?

3.多條件查詢(或)

這次要篩選的是 age = 12 和 age = 13 這兩條資料出來。重複使用 age ,會把符合條件的都篩查出來。

http://localhost:5656/stus?age=12&age=13

你知道如何使用json-server搭建JSON伺服器嗎?

分頁查詢

使用 _page 和 _limit(可選) 對資料進行分頁。需要注意,_page 和 _limit 前面都要有下劃線。_page:頁碼,_limit:每頁的資料量。

需要擷取第2頁的資料,每頁3條:

http://localhost:5656/stus?_page=2&_limit=3

你知道如何使用json-server搭建JSON伺服器嗎?

2.2 增(post)

json-server 新增資料需要使用 POST 方法。

這裡使用 post 方法向 /stus 接口傳輸資料,/stus 原本的資料結構是包含 id、name、age、class 四個字段,id 預設是自增主鍵,不傳的話會預設增加。

你知道如何使用json-server搭建JSON伺服器嗎?
你知道如何使用json-server搭建JSON伺服器嗎?

需要注意的是:

json-server 預設情況下并不會限制你上傳的資料格式和類型,是以需要你嚴格遵循自己設計的資料格式來添加和修改。

2.3 删(delete)

json-server 删除資料需要使用 DELETE 方法。

http://localhost:5656/stus/{id}

你知道如何使用json-server搭建JSON伺服器嗎?

傳回的data此時為一個空對象。

此時打開 db.json 就會發現剛剛删除的那條資料已經沒了。

需要注意的是:删除成功 Status 會傳回 200;如果删除的資料不存在會傳回 404。

2.4 改(put 和 patch)

修改資料分為2個方法:

put :覆寫

patch :更新

http://localhost:5656/stus/{id}

當發送put請求時

例:把 id 為 01 的資料改成 { "name": "李浩","age":12, "class": "211班" }

你知道如何使用json-server搭建JSON伺服器嗎?
你知道如何使用json-server搭建JSON伺服器嗎?

此時打開 stu.json 就可以看到 id 為 01 的資料已經發生變化。

注意:原本的資料包含 name、age 和 class ,使用 put 時必須把這三個字段都寫上,不然會删掉沒傳的字段。這就是 “覆寫” 的意思。

你知道如何使用json-server搭建JSON伺服器嗎?

當發送patch請求時

例:使用 patch 方法把 id 為 02 的資料 age 字段的值更改成 23。

你知道如何使用json-server搭建JSON伺服器嗎?

打開 stu.json 檔案檢視一下,會發現隻改了 id 為 02 的 age 值,并沒有删掉其他字段的資料。

總結

顧名思義,json-server就是個存儲json資料的server。json-server主要的作用是搭建一台JSON伺服器,測試一些業務邏輯,便于調試調用。前後端分離的開發模式下前端使用 json-server模拟資料接口, 這時候 後端接口還沒有開發出來, 前端又需要資料進行開發。這種情況下就需要前端先行模拟資料, 等後端接口寫好進行 targetUrl 進行替換。