![](/img/trans.png)
[英]PHP website with RESTful API using Django. Possible? Good Idea?
[英]Creating a RESTful API and website with PHP
我有一個我之前寫的PHP應用程序,我想添加一個RESTful API。 我還想擴展網站,使其更像是一個Rails應用程序,就您調用的URL來獲取系統中的項目。
有沒有辦法在Railsy方式中調用PHP中的項目而不創建各種文件夾和索引頁面? 如何在不使用GET查詢標記的情況下在PHP中調用信息?
如果你有某種形式的mod_rewrite,你可以使用.htaccess文件輕松完成。
如果您有這樣的事情:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
它將檢查您嘗試訪問的文件是否已存在。 (假設您有一個文件hello.html,您仍然需要人們通過http://yoursite.com/hello.html訪問)
然后,如果該文件尚不存在,它將加載index.php文件,其余的URL存儲在url變量中。
這意味着您可以調用類似http://yoursite.com/pages/edit/24的內容 ,它將在url變量中加載index.php和/ pages / edit / 24。
這應該讓你開始,你不需要各種文件夾和索引頁面,只需要mod_rewrite,.htaccess文件和index.php,它將用於加載你需要的任何東西。
您還可以考慮使用其中一個內置REST支持的PHP框架,例如CakePHP 。
請仔細閱讀Pascal MARTIN:Zend_Rest_Server與REST完全無關。 他們只使用稍微好一點的URL做RPC,並將其稱為REST,以便它更時尚。
如果你想做REST,你需要自己做更多的工作,因為我還沒有為PHP找到一個好的REST庫。 因此,檢查$_SERVER['REQUEST_METHOD']
以決定如何處理被調用資源等。
最簡單的方法可能是使用一個框架,為您提供面向REST的功能。 我知道Zend Framework使用Zend_Rest_Server
類可以輕松創建REST服務器。
我想許多其他框架也是如此。
但是,如果您已經有一個不使用框架的應用程序(或者基於沒有嵌入這種類的Framework的應用程序),那么一些URLrEwriting規則就可以了。 你只需要更多的工作來將URLS /參數映射到類/方法:-(
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.