今天我們來介紹現今大多公司會使用的 API 模式 — RESTful API,由於我先假定在座的各位應該都是基礎工程師、應該都知道 API 是什麼(吧),因此我們直接從 Restful 的部分開始吧。
簡介
REST ,全名為 Representational State Transfer,簡單來說是一種將客戶端與服務實作分離的風格。我們將資源放在那裡,定義 Get、Post等方式去取得對應資源。相較於其他格式,RESTful 更加輕量,並且現代大多的 Web 框架都支持這種格式。
關鍵知識
- 資源: RESTful 將所有內容都視為一種資源,而 HTTP 方法就代表使用者要如何與這份資源互動,因此 URL 中不應該再出現其他動詞,取而代之的是名詞或是複合名詞。
- 資源格式: RESTful 支援多種格式,例如 JSON、HTML、XML 等。
- 無狀態性: 不會有緩存,因此每次請求都應該要有所有所需的資訊。
我的小經驗
在實務上,我們很常會需要對同一個資源做不同操作(如同上述第 1 點),例如取得訂單、調整訂單等,在一般狀況下我們就會需要getOrder
、 addOrder
兩個 API 接口,不過在 RESTful 的架構下,我們可以直接用統一接口、不同 HTTP 方法去處理它們,例如:Route::Get('/order','OrderController@index');
Route::Post('/order','OrderController@add');
這樣對於文件上的統合比較方便,程式上的擴展也會更有彈性、更具可維護性喔。