# JSON-SERVER從0開始 - 一款npm 套件 - 使用 JSON 檔案模擬資料庫 - 快速建立 RESTful API,幫助前端開發 - 無權限控管功能 ## 安裝與設定 :::spoiler 安裝NPM (如果如果安裝過node.js,請略過此步驟) - npm 的全名是 Node Package Manager - 安裝Node.js時,會順便安裝NPM 1. 到node.js官網下載LTS版本 [https://nodejs.org/en/](https://nodejs.org/en/) 2. 安裝過程一律 `next`直到`finish` 3. 在終端機(命令提示字元) 輸入 `npm -v` 有出現版號就表示成功 - 如出現提示'環境變數未設定',請依下圖做設定 ![環境.png](https://i.imgur.com/a28i64k.png) ![環境2.png](https://i.imgur.com/EaIbAAR.png) ![環境3.png](https://i.imgur.com/TBaNAIp.png) ::: ### 1. 安裝json-server本體 - 開啟 指令視窗 並輸入`npm install -g json-server` ![](https://i.imgur.com/D3SqaQZ.png) ### 2. 建立 db.json檔案 - 新增 db.json檔案 :::spoiler db.json 範本 ```json { "users": [ { "id": 1, "name": "Stark", "age": "33" }, { "id": 2, "name": "Happy", "age": "35" }, { "id": 3, "name": "Pepper", "age": "28" } ], "toDo": [ { "id": 1, "content": "把冰箱發霉的檸檬拿去丟", "isDone": true }, { "id": 2, "content": "打電話叫媽媽匯款給我", "isDone": false }, { "id": 3, "content": "整理電腦資料夾", "isDone": true }, { "id": 4, "content": "繳電費水費瓦斯費", "isDone": false }, { "id": 5, "content": "推廣六角", "isDone": true } ] } ``` ::: ### 3. 啟動 json-server - `json-server --watch db.json` - 查看預設網址 [http://localhost:3000/](http://localhost:3000/) - 想變更預設port ? `json-server --watch db.json --port 3004` #### 三步驟,大功告成! ## **RESTful API 使用方式** 推薦可以使用[Postman](https://www.postman.com/)做API測試 ### GET:取得資料 - 取得全部users資料 `http://localhost:3000/users` - 取得users id=2的資料 `http://localhost:3000/users/2` - 取得users name=Happy的資料 `http://localhost:3000/users?name=Happy` - 模糊查詢 `http://localhost:3000/users?name_like=a` - 會出現所有name含有a的資料 ### DELETE : 刪除 - 刪除單筆資料 (method: DELETE) `http://localhost:3000/users/5` ### POST :新增資料 - 每筆資料一定都要有唯一的id,沒給id的話,json-server會自動補上 id重複的話,會回傳500 - Content-Type: application/json - Method: POST - url: `http://localhost:3000/users` - Body: ```json { "id": 4, "name": "Peter", "age": "30" } ``` ### PUT:修改資料 (完整) 與POST方式相似,會將新資料**完全取代舊資料**,沒寫到的屬性會被刪除 - Content-Type: application/json - Method: PUT - url: `http://localhost:3000/users/4` ### PATCH:修改資料 (局部) 與PUT方式相似,**僅更新有變動的部分**,其餘資料不會變 - Content-Type: application/json - Method: PUT - url: `http://localhost:3000/users/4` # 參考文獻 - ****[JSON Server 官方Github](https://github.com/typicode/json-server)**** - [六角學院文件](https://quip.com/C6t2ALm9L6G8) ← **強力推薦**!! 內含影音教學