使用PHP创建REST API

时间:2014-02-22 19:26:35

标签: php json api rest curl

我正在创建我的第一个API,如果传递了两个值,我应该以JSON格式获得响应。该号码将通过POST作为参数传递。使用cURL或任何可用的POST方法。

即使这是一个非常基本的,我想知道最佳实践,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。

2 个答案:

答案 0 :(得分:72)

在你的例子中,它很好:它很简单而且很有效。我建议的唯一的事情是:

  1. 验证已发布的数据
  2. 确保您的API正在发送Content-Type标头,以告知客户端需要JSON响应:

    header('Content-Type: application/json');
    echo json_encode($response);
    
  3. 除此之外,API是接受输入并提供输出的东西。有可能“过度设计”事物,因为你需要做的事情更复杂。

    如果您想沿着控制器和模型的路线前进,请阅读MVC pattern并了解您的域对象如何适应它。看一下上面的例子,我可以看到一个MathController add()动作/方法。{/ p>

    GitHub上有一些RESTful API的起点项目值得一看。

答案 1 :(得分:17)

尝试从头开始编写REST API并不是一项简单的任务。需要考虑许多问题,您需要编写大量代码来处理来自调用者的请求和数据,身份验证,数据检索以及发回响应。

您最好的选择是使用已经准备好此功能的框架并为您进行测试。

一些建议是:

Phalcon - REST API building - 易于在一个具有巨大性能的框架中使用

Apigility - 适用于Zend Technologies的所有API处理框架

Laravel API Building Tutorial

还有更多。对Bitbucket / Github的简单搜索将为您提供大量资源。