2014-02-22 248 views
47

我正在創建我的第一個API,如果傳遞了兩個值,我應該以JSON格式獲得響應。該號碼將作爲參數通過POST傳遞。使用cURL或任何POST方法可用。使用PHP創建REST API

即使這是一個非常基本的,我想知道最佳實踐和API應該由模型控制器的基礎上創建。不只是普通的PHP。

我已經Google了很多REST API教程。他們很好,我已經獲得了一些知識。

但我想要得到一個示例代碼模型,以便我可以參考它並構建自己的示例,當然這也適用於製作真正的REST API的標準實踐。

如果你問我什麼,我都試過了,這將是非常有趣的,作爲一個初學者,我所能做的就是:

$num1 = $_REQUEST['num1']; 
$num2 = $_REQUEST['num2']; 

$total = $num1 + $num2; 
echo json_encode($total); 

當然,這不能被稱爲API,但仍。如果我對此作出POST響應,我希望將來自REST API的響應作爲JSON。我應該可以通過REST控制檯對其進行測試,以便獲得標準響應。

請給我提供一個非常基本但是標準的RESTful API。

+0

看看https://github.com/peej/tonic –

+0

@GajusKuizinas與我所問的完全不同。在你評論之前請閱讀他們的問題 – Piya

+3

@PiyaSharma你已經要求某人進行研究並編寫代碼您。 – Gajus

回答

71

在你的例子中,它很好,它很簡單,很有效。唯一的東西,我建議是:

  1. 驗證數據POST方法
  2. 確保您的API被髮送Content-Type頭告訴客戶期望的JSON響應:

    header('Content-Type: application/json'); 
    echo json_encode($response); 
    

除此之外,API是接受輸入並提供輸出的東西。有可能「過度設計」事情,因爲你需要更復雜的事情。

如果你想要走下控制器和模型的路線,然後閱讀MVC pattern並計算出你的域對象如何適合它。看看上面的例子,我可以看到一個MathControlleradd()行動/方法。

GitHub上有幾個RESTful API的起點項目值得一看。

+0

哦,這是一個很好的答案,非常感謝。 – Piya

+0

那些對這個答案投了贊成票的人,如果你可以留下評論爲什麼會很好。 –

+0

我建議使用slim 3框架在PHP中編寫REST API - 值得一看:)主要是因爲您可以將身份驗證和ACL添加爲中間件層(和內容協商),這非常棒。 –

17

試圖從頭開始編寫REST API不是一件簡單的任務。有許多問題需要考慮,您需要編寫大量代碼來處理來自調用者的請求和數據,身份驗證,數據檢索以及回送響應。

最好的辦法是使用已經具備此功能的框架,並且已經過測試。

提出了一些建議:

爾康 - REST API building - 易於使用所有與巨大的性能

Apigility一個框架 - 一個一刀切由Zend技術公司的所有API處理框架

Laravel API Building Tutorial

等等。在Bitbucket/Github上進行簡單搜索將爲您提供大量資源。

+0

謝謝您的回覆。我會檢查它們 – Piya