2

Ok, this is probably something answered millions of times, but I couldn't find an answer on Google (maybe I'm using the wrong parameters?).

Here is the thing:

I'm planning to implement a REST webservice using PHP. This webservice is supposed to serve a mobile app and also a website (located on the same server/virtualhost/whatever).

For example, URLs will be something like:

Now my question is:

Which type of query is the most recommended for querying the database? For example, if I login from the website (http://www.somedomain.com/), it would be better to implement another internal PHP API for that or to login using cURL to the REST API and why?

I know, if I implement another PHP function for login from the website, I will be using one less HTTP connection to my server, but wouldn't it break the idea of the RESTful API?

Thank you in advance.

4

2 回答 2

1

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

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

当一个函数被远程调用时,它称为远程过程调用(RPC),调用实现称为远程过程,通常由 RPC- API 处理,在极少数情况下由 ABI处理。

因此,您的任务的核心在于质疑远程过程调用的必要性,以及给定过程应该执行多少。因此,注意良好的代码重构指南是良好 API 的良好开端。我一般坚持以下几点:

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

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

应该让你开始。

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

于 2013-10-18T19:38:32.943 回答
1

我会说你想尽可能地省略 HTTP 往返。这可能是非常浪费的,但如果调用很少,那么代码去重可能是值得的。这完全取决于您的应用程序。

不要太担心“破坏 RESTful API”——按照你的逻辑,你自己的应用程序应该没有函数调用,而只是curl对自己的调用。不,相反,在某些时候,您的代码需要摆脱管理层的言论,开始投入血腥的工作。:)

于 2013-10-18T18:59:14.563 回答