天天看點

json-server模拟接口請求過程

一、背景

前後端分離已經成為項目的标準開發模式,通過前後端分離,極大地提高了開發效率和開發能力。

二、問題引入

作為前端,在後端接口還沒有提供的情況下,不可避免地要使用mock的資料。有時候,我們可以使用靜态json資料來做mock,但有時候,我們并不想使用靜态json資料,而是希望自己起一個本地的mock-server來完全模拟請求以及請求回來的過程。

json-server是一個很好的可以替我們完成這一工作的工具。我們隻需要提供一個json檔案,或者寫幾行簡單的js腳本就可以模拟出RESTful API的接口。

三、需求場景及解決方法

什麼是json-server:

json-server 是一個 Node 子產品,運作 Express 伺服器,你可以指定一個 json 檔案作為 api 的資料源。

使用方法:

  1. 首先執行npm i json-server -g把json-server作為全局工具安裝
json-server模拟接口請求過程

2. 建立一個項目目錄(後面文中所有的路徑根目錄都表示該項目目錄)

在根目錄中執行npm init初始化一個項目

建立/server目錄用于放置服務端的檔案

建立/server/db.json檔案作為服務端的資料庫檔案

在/server/db.json檔案中寫入以下資料:

json-server模拟接口請求過程

3. 在

/server

目錄執行

json-server db.json -w -p 8000

啟動本地服務

json-server模拟接口請求過程

4. 現在打開浏覽器,通路網址http://localhost:8000,會出現一個接口管理頁面:

json-server模拟接口請求過程

通路resources裡的user會跳轉到http://localhost:8000/user,可以看到我們之前在db.json中寫入的user數組

json-server模拟接口請求過程

通路

http://localhost:8000/book

同上。

我們在db.json檔案中寫入了标準的json格式資料,這個json裡有一個user數組和一個book數組,這就告訴json-server,我們的資料庫裡有一個名為user的“表”和一個名為book的“表”,并且表裡的資料為xxx,然後json-server就會啟動伺服器,并且以每個“表”為機關為我們注冊一系列标準的RESTful形式的API接口(路由),以user為例:

  • [GET] /user #擷取使用者清單的接口
  • [GET] /user/:id #擷取單個使用者的接口
  • [POST] /user #新增使用者的接口
  • [PUT] /user/:id #修改使用者的接口
  • [DELETE] /user/:id #删除使用者的接口

當然,主要用的是還是get和post

在擷取清單的接口中也可以追加查詢參數,來限定查詢的結果,比如:

  • 查詢所有男性使用者:

/user?gender=male

  • 查詢年齡大于等于20并且小于等于29的使用者:/user?age_gte=20&age_lte=29

此外還有分頁、排序、比對、關系查詢等查詢方式 。

至此我們就擁有了一套強大的資料接口。

5.下面寫一個簡單的表單,添加一個使用者

json-server模拟接口請求過程

6.檢視使用者清單,已成功添加使用者

json-server模拟接口請求過程

7.編輯使用者

json-server模拟接口請求過程

接口資料已修改

json-server模拟接口請求過程