最近使用Postman和SheetDB練習向RESTful API(Representational State Transfer)發出各種HTTP requests,看documentation研究了下GET、PUT、POST、PATCH、DELETE的操作。
SheetDB提供了一個測試用的API,每小時會重置一次裡面的data:
https://sheetdb.io/api/v1/58f61be4dda40
GET
- 功能:獲取資料
- 操作:單純輸入API URL即可獲得所有資料。
API URL: https://sheetdb.io/api/v1/58f61be4dda40
補充:使用GET獲取資料還可以設定回傳幾筆資料、從第幾筆資料開始回傳、回傳的資料根據特定column中的資料排序(例如年紀)。也可以請求回傳檔案的名字、所有分頁的名字、所有欄位的名字、總共多少筆資料、搜尋含有特定value的資料(例如所有年齡為25的人的資料)。
POST
- 功能:新增row
- 範例:新增一筆名字為Kat的資料,id為15,name為Kat,age為25,comment是Hello world。
- 操作:parameter的一定要有一個key叫做“data”,對應的value則是一個array,裡面包著一個dictionary,dictionary裡面的key-value pair即是表格中的每個column及我們要存入的值。
API URL: https://sheetdb.io/api/v1/58f61be4dda40
再用GET獲取一次資料,可以看到剛剛輸入的資料出現了
- 補充:
value中使用”INCREMENT“(要大寫) SheetDB就會自動尋找該column中最大的數值,然後+1。
例如目前的id有1到5號,新增row時在id的部分填入”id”:”INCREMENT”,新增的row id數值就會自動設為6。
PATCH
- 功能:只對某筆資料中指定的column更新資料
- 範例:將資料中name為Kat的人的age改為20
- 操作:
以下的URL中,column填入要找尋的column名稱“name”,value是要更改的目標”Kat",就會搜尋name column中名字為Kat的row進行更新。如果資料中有不只一個名為Kat的人,會把所有名為Kat的資料都被更新。
API URL: https://sheetdb.io/api/v1/58f61be4dda40/column/value
parameter的部分則像使用POST新增row一樣,KEY是data,value只要放上欲更改的欄位及數值[{“age”:”20”}]。
用GET獲取一次新的資料,可以看到Kat的資料中age已經變成20,其餘資料則不變:
PUT
- 功能:對某筆資料全部更新。
- 範例:想更改Kat的age資料,但不小心用成PUT,就會發現原本Kat的那筆資料只剩下age為20,其他資料都不見了,因為data對應到的value中我們只送出了[{“age”:”20”}]。
API URL: https://sheetdb.io/api/v1/58f61be4dda40/column/value
重新獲取資料:
DELETE
- 功能:刪除row
- 範例:將名為Kat的人的資料整筆刪除
- 操作:URL中column填入name,value則為Kat。如果name欄位中有好幾個人名字都為Kat,所有名為Kat的人的資料都會被刪除。
API URL: https://sheetdb.io/api/v1/58f61be4dda40/column/value
補充:可以請求刪除所有的資料
Multiple Sheets
如果excel sheet中有好幾個分頁,也可以同時對好幾個sheet發出請求。在parameter的部分要輸入key-value pair要輸入"sheet":"指定sheet的名字"