從零開始的JSON Server
TL;DR
在前端開發的時候 ,通常最缺的資源就是沒有好的設計稿,另外一個就是想實作的功能沒有後端的支援做不出來。 這時候就該JSON Server上場啦!!
參考資料
- JSON-SERVER從0開始(薯餅) | HackMD
- json-server - 不會後端也能自己開 REST API(六角學院) | HackMD
- 用 JSON Server 模擬 RESTful API(Debby Ji) | Medium
- 前端開發不能錯過的 Json Server | Hexo Personal
相關連結
- JSON Server Github | Github
- JSON Server NPM | NPM
安裝JSON Server
使用npm安裝,可以安裝在當下的專案中,也可以安裝在global。以下示範安裝在global:
npm install -g json-server
如果要檢查是否有安裝成功,可以在terminal上輸入json-server -v
,觀看是否有回傳當前版本資訊
另外也可以從npm list -g
去觀看global現在有安裝了哪些套件
/Users/zhangkaiwei-m2/.nvm/versions/node/v18.18.0/lib
├── corepack@0.19.0
├── eslint@8.52.0
├── json-server@0.17.4
├── nodemon@3.0.1
└── npm@9.8.1
創建db.json
可以先進到目前的專案資料夾中,創建一個db.json
。這個檔案就是後面會存放所有資料的資料庫。
在db.json
中,我們需要照著JSON Server的格式去撰寫內容,才有辦法使用JSON Server去開啟。
這邊我們根據官方文件內所提供的資料格式創建內容如下:
db.json
{
"posts": [
{ "id": 1, "title": "json-server怎麼用", "author": "小威" },
{ "id": 2, "title": "vue從開始到放棄", "author": "小威" }
],
"comments": [
{ "id": 1, "body": "小明的留言", "postId": 2 },
{ "id": 2, "body": "小美的留言", "postId": 1 },
{ "id": 3, "body": "小威的留言", "postId": 2 }
],
"profile": [{ "name": "typicode" }]
}
額外新增的幾筆內容是為了後續說明queyr以及透過id get資料用的
開啟伺服器
接著就可以準備開啟伺服器了。這邊需要注意路徑是否正確,否則會讀取不到db.json
檔案。
輸入以下指令:
json-server --watch db.json
就可以開啟伺服器啦~ 伺服器預設會開在port:3000,所以我們可以使用http://localhost:3000去戳我們的伺服器。
不想使用port3000開啟JSON Server?
因為在撰寫docusaurus筆記的時候,預設也是開啟port 3000。同一個port號不能同時被兩個應用程式給開啟!
這時候就可以手動指定JSON Server我們希望開啟的port號啦!!可以使用以下指令去指定開啟在port 3002的位置
json-server --watch db.json --port 3002
Congrats!
You're successfully running JSON Server
✧*。٩(ˊᗜˋ*)و✧*。
Resources
/posts 2x
/comments 3x
/profile object
To access and modify resources, you can use any HTTP method:
GET POST PUT PATCH DELETE OPTIONS
undefined
Documentation
README
db.json格式介紹
上述建立的db.json用文字來敘述代表:
- posts內有兩篇貼文,並且會紀錄標題以及作者
- comments內存放所有留言,每個留言有自己的唯一編號(id),每則留言內會有內容以及紀錄是哪篇貼文下的留言(postID)
- profile 這個是JSON Server預設提供的,就沒有額外去更動它
Restful API
所有JSON Server提供的API如下
GET /posts
GET /posts/1
POST /posts
PUT /posts/1
PATCH /posts/1
DELETE /posts/1