最近需要用PHP為移動APP提供後台API,看到國內PHP Restful API相關的資料比較少,想找一個代碼學習學習,PHP上手才幾天,現在急需要瞭解如何優雅的完成這個API。
回複內容:
最近需要用PHP為移動APP提供後台API,看到國內PHP Restful API相關的資料比較少,想找一個代碼學習學習,PHP上手才幾天,現在急需要瞭解如何優雅的完成這個API。
如果你滿足一下兩個條件:
對 PHP 還不是算很熟悉;
API 介面只需要簡單提供幾個;
項目時間比較緊;
那麼,我建議你選擇簡單一點的可以實現 RESTful 的小型架構。
為什麼:
不熟悉 PHP 的情況下,難以一下子掌握一個龐大的架構(比如:Phalcon、Laravel、YII 等等);
對於一般的開發人員來說,按時交功課還是很重要的;
用 PHP 實現 RESTful 風格的 API,最重要的還是:路由的實現、HTTP 要求(request)的解析、HTTP (response)響應的良好封裝和JSON 格式的良好支援;
如果是這樣,我會推薦給你:
Slim
Bullet
更多輕量級的小型架構自己搜 REST。
不過,不能不說的是,既然希望看別人的代碼進行學習,那麼還是應該帶著目的和疑問去會更好。所以建議可以先看看有些 RESTful API 的優秀設計,比如:GitHub、Mailgun、Enchant 等等。
除此之外,還可以參考一些網路上一些“最佳實務”,這就非常多了,這裡就不羅列了。(可以咪一眼這個 GitHub)
在對 REST 有一些瞭解後,在帶著想法去看,個人覺得會事半功倍吧。
最後,如果說你需要一個全棧式的 PHP 架構(掌握需要些時間)來實現 REST API 的話,那麼也可以選擇,比如 YII、Laravel 等等。不過我還是最喜歡 Phalcon 了,它實現 REST 也很簡單 教程。
非 Flarum 莫屬,完全的前後端分離。
後端歸後端,用 Laravel 編寫。
前端歸前端,用 Mithril.js 編寫。
前端和後端基於 jsonapi 通訊。
參考
推薦一款非常適合RESTful和微服務介面的架構phprs
讓你在這些情境下徹底擺脫MVC。
看個例子,這是一個可能的登入介面實現,只需要編寫下面代碼,無效額外的繼承和配置:
/** * 使用者鑒權 * @path("/tokens/") */class Tokens{ /** * 登入 * @route({"POST","/accounts/"}) * @param({"account", "$._POST.account"}) 帳號 * @param({"password", "$._POST.password"}) 密碼 * @return({"body"}) 也通過body返回token,同cookie中的token相同, {"token":"xxx"} * @return({"cookie","token","$token","+365 days","/"}) 通過cookie返回token */ public function createTokenByAccounts($account, $password, &$token){ //驗證使用者 $token = ...; return ['token'=>$token]; } }
架構通過@注釋定義路由和綁定參數,另外還有一些有用的進階特性:依賴注入、自動化介面文檔、介面緩衝等。
雖然這個架構github上看上去比較新,但其實目前已經很穩定,可以用於線上環境