ZendFramework 2 AbstractRestfulController

Zend Framework 2 有提供一個 AbstractRestfulController 用來實作 REST API。不過按照慣例,Zend Freamework 的說明文件都只是簡單帶過而已,真正的用法與規則還得去閱讀程式碼。

使用方法,就只要繼承 AbstractRestfulController 即可:

在 Router 那邊,記得不要設置 action:

之後,就會自動對應到 Controller 的 Method:

  • GET => getList()
  • GET + id => get($id)
  • POST => create($data)
  • PUT => replaceList($data)
  • PUT + id => update($id, $data)
  • DELETE => deleteList()
  • DELETE + id => delete($id)
  • HEAD => head($id)
  • OPTIONS => options()
  • PATCH => patchList($data)
  • PATCH + id => patch($id, $data)

因此,一個支援 GET 與 POST 的 Controller 大概長這樣:

其它沒有實作的部份,AbstractRestfulController 會幫你回應 405 Method Not Allowed 。

另外,identifier 的名稱,預設是用 “id”,為了可讀性,你也可以自訂 identifier,下面我們改用 “name” 作為 identifier:

相對應的 Router 也需要把 id 改為 name:

AbstractRestfulController 的用法大致上就這樣。