前言
好一陣子沒有寫 Blog 了,原因也是因為初階的 Angular 學到一個段落了,團隊的 Leader 決定讓隊伍內的成員們以敏捷開發的方式跑看看一個 Side Project ,順便讓我學習如何與團隊合作一個專案。
而這篇文章主要是簡單記錄自己如何使用 json-server 快速 Mock 一個 API 讓自己串接,並且使用 chart.js 繪製出堆疊長條圖。
在專案中使用 json-server
來到 json-server 的 GitHub 查看如何使用。
下載 json-server
使用步驟如下:
- 如果是新的專案而且沒有 package.json 檔
- 輸入
npm init
建立 package.json 檔
- 輸入
- 輸入
npm install -g json-server
安裝 json-server
建立 db.json
接著新增 db.json
檔,內容可先複製官網範例進行參考:
1 | { |
輸入 json-server db.json
運行 json-serve ,等候呼叫 API
db.json
檔就是當呼叫 API 時會傳回那些資料的檔案,舉例來說:
- 預設狀態下,在網址列輸入
http://localhost:3000/posts
- 會傳回
{ "id": 1, "title": "json-server", "author": "typicode" }
- 會傳回
這邊因為之後要使用 chart.js 進行圖表繪製,所以我另外有準備資料,因為跟工作有關就不貼上來了。
自訂路由
大多時候 json-server 的預設範例是滿足不了我們的。
舉例來說,我想要 Mock 的 API 路徑希望是:
1 | /api/v1/issues/analysis?gid=:gid&sDate=:sDate&eDate=:eDate |
這時候就需要自訂路由了!
新增 route.json
檔案
接著在裡面貼上官網的範例:
1 | { |
如上設定後,對應結果如下:
- 輸入
/api/posts
# → /posts - 輸入
/api/posts/1
# → /posts/1 - 輸入
/posts/1/show
# → /posts/1 - 輸入
/posts/javascript
# → /posts?category=javascript - 輸入
/articles?id=1
# → /posts/1
找出規則後,修改 route.json
變成我們要的結果。
1 | { |
自訂配置
為了更方便使用,也可以自行配置 json-server 。
新增 json-server.json
並且在裡面輸入:
1 | "port": 5000, //自定 port |
因為只有使用到這些配置,更多配置請參考官方 GitHub 文件。
配置已經完成了,最後在 package.json
中加入以下指令:
1 | "scripts": { |
之後只需要執行 npm run mock
指令即可運行以上這些配置囉!
參考文件
在專案中使用 chart.js
先到 chart.js 官方了解如何使用,發現有兩種使用方式:
為了方便,這裡我使用了 CDN 的方式使用 chart.js
參考官方建立一個範本
由於我想畫的是堆疊柱狀圖,但我們依然可先參考官方的起手範例,先行建構一個範本。
1 | <canvas id="myChart"></canvas> |
1 | var ctx = document.getElementById('myChart').getContext('2d'); |
官網文件寫得十分詳細,但因為是英文,所以需要花一點時間找相關的方法、屬性如何使用。
最後參考了這篇文章得知如何把柱狀圖堆疊起來,修改程式碼後順利完成本次目標~
因為資料涉及公司,所以就不放上程式碼以及相關圖片了。