创建API(使用PHP)


Creating an API (with PHP)

我的脑海里已经有这个想法了两个星期了。我终于创建了一些关于我想在这个项目中走向何方的案例和计划。我将不得不创建一个web应用程序(ASP.NET)和一个桌面应用程序(Java)。这两个应用程序都需要同步数据库。

我一直在考虑在我的数据库上创建一个公共的API,这样我的前端和第三方就可以与数据库通信。但我以前从未真正尝试过这样的事情。到目前为止,我已经花了一个周末的时间来阅读如何处理这个问题,我有了一个很好的想法。我目前有一些问题/疑虑,希望有人能帮助我。

1) 我现在还在上大学,没有工作,所以我的口袋不是很深。我一直在考虑用PHP编写API,我已经拥有了一个未计量的托管帐户,否则我将被迫购买.NET托管,这可能会非常昂贵。然而,我的PHP知识在解析用户输入/安全方面非常有限。搜索一本关于这个主题的(e)书是明智的吗?还是我可以接受在线教程?你有什么建议吗?我应该把时间花在编写一个可能存在漏洞的PHP API上,还是应该考虑其他选项?

2) 到目前为止,我从未真正需要研究PHP库。我想知道我是否应该研究其中的一些(例如cakeHP)来帮助我开发API。

3) 我有实现Twitter/Linkedin的API的经验,所以我一直在考虑使用OAuth(v2)来允许人们使用我的API。将OAuth实现到您的API是否需要大量工作?对于一个只有基本PHP知识的人来说,它的文档是否足够好?如果你曾经在API上使用过它,你对它有什么经验?

4) 如果这个项目能够启动,那么明智的做法是考虑在云中托管它。我目前是否需要考虑一些事情,以便未来的云集成成为可能?

5) 对于web应用程序,使用API或直接连接到数据库之间是否存在(大)性能差异?

6) 欢迎任何推荐的讲座或提示。这是我第一次尝试这么大的东西(包括功能和所需知识)。

1)如果你有其他语言的经验,那么用PHP开发一个简单的API并不难。当然,每种语言都有自己的方式,当涉及到优化和诸如此类的事情时,你可能需要更多的PHP知识。

2) 使用PHP框架肯定会在很多方面有所帮助。我所有的PHP项目都使用symfony 2。我真的建议检查一下。这是一个解耦的框架,你可以使用框架中的各个组件。它重量轻、速度快,并提供了很好的工具来构建您想要的东西。什么是symfony?解释了好处。此外,使用ORM(我更喜欢条令)是一种选择,但这是另一个话题。

3) 如果您决定使用symfony2,那么您可以使用它的捆绑包(库)。即使没有框架,实现起来也不会太难,但我在这方面没有任何经验。

4) 我对云没有任何经验,所以不能对此发表评论。

5) 当你在项目中添加另一层时,会有性能差异,但它是大还是小取决于API、数据库等。但是,使用API将意味着与数据库通信的标准方式,因此即使存在性能差异,它可能在一致性和开发时间方面是有益的(你不必处理不同的平台来做数据库的事情)

6) API的有用性在很大程度上取决于应用程序,如果没有关于项目的具体信息,我真的不能说它是否超过了成本。但是,在处理多个平台和语言的IMO时,使用标准化的方式和数据存储进行通信通常是一个好主意。由于我不知道你们对PHP了解多少,我无法评论这是否值得你们花时间。如果有足够的时间,我会选择它,因为学习PHP会在你的武器库中添加更多的工具,这将是一个很好的机会来提高你作为一名开发人员的水平。