[Swift]用Postman和SheetDB練習使用RESTful API

Penny N.
5 min readApr 24, 2020

--

Photo by Daniel Fazio on Unsplash

最近使用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的名字"

--

--

Penny N.
Penny N.

Written by Penny N.

A passionate self-taught  iOS developer. Write to record my learning and share the knowledge

No responses yet