PHP:REST与功能

时间:2013-10-18 18:53:32

标签: php api rest curl

好的,这可能已经回答了数百万次,但我在Google上找不到答案(也许我使用了错误的参数?)。

事情就是这样:

我打算使用PHP实现REST Web服务。这个web服务应该服务于移动应用程序和网站(位于同一服务器/虚拟主机/任何)。

例如,网址类似于:

现在我的问题是:

最适合查询数据库的查询类型是什么?例如,如果我从网站(http://www.somedomain.com/)登录,最好为此实现另一个内部PHP API或使用cURL登录到REST API以及为什么?

我知道,如果我从网站上实现另一个用于登录的PHP函数,我将使用少一个HTTP连接到我的服务器,但是它不会破坏RESTful API的想法吗?

提前谢谢。

2 个答案:

答案 0 :(得分:1)

我想说你想省掉HTTP往返的地方。这可能是非常浪费的,但如果电话很少,那么代码去重复数据删除可能是值得的。这一切都取决于你的应用程序。

不要过于担心“打破RESTful API” - 按照你的逻辑,你自己的应用程序应该没有函数调用,只是对自己充满了curl个调用。不,相反,在某些时候,您的代码需要摆脱管理层的言论,然后开始血腥的工作。 :)

答案 1 :(得分:1)

我相信大多数人都知道这一点,但为了完整起见:

函数或过程是指定的程序部分,它处理特定的任务,通常由函数声明或定义和函数体组成。

远程调用函数时,它称为远程过程调用(RPC),调用实现称为远程过程,通常由RPC- API and in rare cases by an ABI处理。

因此,您的任务的核心在于质疑远程过程调用的必要性,以及给定过程应执行的程度。因此,良好的代码重构指导是一个良好的API的良好开端。我一般都遵循以下指示:

  • 如果您不需要对给定过程进行远程调用,请不要不必要地暴露它。
  • 明智地选择您可以访问API的程序并对其进行单元测试。
  • 创建各种包装函数,这些函数连续调用一组本地函数来执行特定任务,而不是远程调用每个函数,并使REST API可以访问它们。

初始身份验证程序是一个好主意,但我建议使用已建立的协议,例如 OAuth 2 ,而不是实现自己的协议。因此,最终可能会在远程php脚本中使用curl。

This应该让你开始。

除此之外,您没有提供足够的信息来为您提供更具体的答案。我一般建议您查看googleyahoofacebook以及NCBI的PUG,了解他们如何实施REST API,这通常是一个很好的案例研究