2014-02-22 646 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