有沒有比較好的PHP Restful API 的開源項目或者執行個體代碼?

來源:互聯網
上載者:User
最近需要用PHP為移動APP提供後台API,看到國內PHP Restful API相關的資料比較少,想找一個代碼學習學習,PHP上手才幾天,現在急需要瞭解如何優雅的完成這個API。

回複內容:

最近需要用PHP為移動APP提供後台API,看到國內PHP Restful API相關的資料比較少,想找一個代碼學習學習,PHP上手才幾天,現在急需要瞭解如何優雅的完成這個API。

如果你滿足一下兩個條件:

  1. 對 PHP 還不是算很熟悉;

  2. API 介面只需要簡單提供幾個;

  3. 項目時間比較緊;

那麼,我建議你選擇簡單一點的可以實現 RESTful 的小型架構。

為什麼:

  1. 不熟悉 PHP 的情況下,難以一下子掌握一個龐大的架構(比如:Phalcon、Laravel、YII 等等);

  2. 對於一般的開發人員來說,按時交功課還是很重要的;

  3. 用 PHP 實現 RESTful 風格的 API,最重要的還是:路由的實現、HTTP 要求(request)的解析、HTTP (response)響應的良好封裝和JSON 格式的良好支援;

如果是這樣,我會推薦給你:

  1. Slim

  2. Bullet

更多輕量級的小型架構自己搜 REST。

不過,不能不說的是,既然希望看別人的代碼進行學習,那麼還是應該帶著目的和疑問去會更好。所以建議可以先看看有些 RESTful API 的優秀設計,比如:GitHub、Mailgun、Enchant 等等。

除此之外,還可以參考一些網路上一些“最佳實務”,這就非常多了,這裡就不羅列了。(可以咪一眼這個 GitHub)

在對 REST 有一些瞭解後,在帶著想法去看,個人覺得會事半功倍吧。

最後,如果說你需要一個全棧式的 PHP 架構(掌握需要些時間)來實現 REST API 的話,那麼也可以選擇,比如 YII、Laravel 等等。不過我還是最喜歡 Phalcon 了,它實現 REST 也很簡單 教程。

非 Flarum 莫屬,完全的前後端分離。

  • 後端歸後端,用 Laravel 編寫。

  • 前端歸前端,用 Mithril.js 編寫。

前端和後端基於 jsonapi 通訊。

參考

  • Flarum 技術架構 Architecture

推薦一款非常適合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上看上去比較新,但其實目前已經很穩定,可以用於線上環境

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.