使用 Google Sheet 來製作 API,撰寫 spec:
Google Apps Script 需要支援 JSONP 回調和通過查詢參數處理請求
必須要生成以下四個 API,並且 doGet 與 doPost 都是用 JSONP 參數來處理請求
使用 Nuxt 框架來製作 API,詳細的專案建立可以參考 001: pages/001
撰寫 spec:
實現一個簡單的購買物品紀錄
取得所有資料:
curl -L --get \ --data-urlencode "action=get" \ --data-urlencode "callback=handleResponse" \ "https://script.google.com/macros/s/AKfycbwFcSx8zMYcKdnwqdfauch2buFgwgdPq4NR4Q9QTmXXSoevUKCsin7S2WWqTGhE2cu_nA/exec" handleResponse({"success":true,"data":[{"id":1,"name":"高效能筆記型電腦","buy_date":"2023-01-15T00:00:00.000Z","warranty_period":730,"warranty_date":"2025-01-14T00:00:00.000Z"}]})
取得單一資料:
curl -L --get \ --data-urlencode "action=get" \ --data-urlencode "id=1" \ --data-urlencode "callback=handleResponse" \ "https://script.google.com/macros/s/AKfycbwFcSx8zMYcKdnwqdfauch2buFgwgdPq4NR4Q9QTmXXSoevUKCsin7S2WWqTGhE2cu_nA/exec" handleResponse({"success":true,"data":{"id":1,"name":"高效能筆記型電腦","buy_date":"2023-01-15T00:00:00.000Z","warranty_period":730,"warranty_date":"2025-01-14T00:00:00.000Z"}})
新增 (通過 JSONP 實現):
curl -L --get \ --data-urlencode "action=post" \ --data-urlencode 'data={"name":"筆記型電腦","buy_date":"2023-01-15","warranty_period":365}' \ --data-urlencode "callback=handleResponse" \ "https://script.google.com/macros/s/AKfycbwFcSx8zMYcKdnwqdfauch2buFgwgdPq4NR4Q9QTmXXSoevUKCsin7S2WWqTGhE2cu_nA/exec" handleResponse({"success":true,"data":{"id":2,"name":"筆記型電腦","buy_date":"2023-01-15T00:00:00.000Z","warranty_period":365,"warranty_date":"2024-01-15T00:00:00.000Z"}})
修改 (通過 JSONP 實現):
curl -L --get \ --data-urlencode "action=put" \ --data-urlencode 'data={"id":1,"name":"高效能筆記型電腦","buy_date":"2023-01-15","warranty_period":730}' \ --data-urlencode "callback=handleResponse" \ "https://script.google.com/macros/s/AKfycbwFcSx8zMYcKdnwqdfauch2buFgwgdPq4NR4Q9QTmXXSoevUKCsin7S2WWqTGhE2cu_nA/exec" handleResponse({"success":true,"data":{"id":1,"name":"高效能筆記型電腦","buy_date":"2023-01-15T00:00:00.000Z","warranty_period":730,"warranty_date":"2025-01-14T00:00:00.000Z"}})