这个想法已经在我脑海里徘徊了两个星期了。我终于创建了一些案例,并制定了我想要在这个项目中前进的计划。我将不得不创建web应用程序(ASP.NET)和桌面应用程序(Java)。这两个应用程序都需要同步数据库。
我一直在考虑在我的数据库上创建一个公共API,这样我的前端和第三方就可以与数据库通信。但我从来没有真正尝试过这样的事情。到目前为止,我已经把我的周末时间花在了阅读我如何处理这个问题上,我得到了一个很好的想法。我现在有一些问题/疑惑,希望有人能帮助我。
1)我现在还在上大学,我还没有工作,所以我的口袋不是很深。我一直在考虑用PHP编写应用程序接口,我已经拥有了一个非计量主机帐户,否则我将被迫购买.NET主机,这可能会变得相当昂贵。但是,我在解析用户输入/安全性方面的PHP知识非常有限。围绕这个主题搜索一本(E)书是明智的吗?或者我可以使用在线教程,你有什么建议可以去哪里看吗?我应该把时间花在编写可能易受攻击的PHP API上,还是应该考虑其他选择?
2)到目前为止,我还没有真正需要研究PHP库。我想知道我是否应该研究其中的一些(例如cakePHP)来帮助我开发应用程序接口。
3)我有实现Twitter/Linkedin的API的经验,所以我一直在考虑使用OAuth (v2)来允许人们使用我的API。在你的应用程序接口中实现OAuth需要做很多工作吗?对于只有PHP基础知识的人来说,它的文档是否足够充分?如果你曾经在你的API上使用过它,你对它的体验是什么?
4)如果这个项目要启动,明智的做法是考虑在云中托管它。我目前是否需要考虑一些事情,以便未来的云集成成为可能?
5)对于web应用程序,使用API或直接连接到数据库之间会有(很大)性能差异吗?
6)欢迎任何推荐的讲座或技巧。这是我第一次尝试这么大的东西(包括功能和所需的知识)。
发布于 2012-03-18 05:11:57
1)如果你对其他语言有一定的经验,用PHP开发一个简单的API并不难。当然,每种语言都有自己的方式,当涉及到优化之类的事情时,您可能需要更多的PHP知识。
2)使用PHP框架肯定会对很多方面有所帮助。我所有的PHP项目都使用symfony 2。我真的建议你去检查一下。它是一个解耦的框架,您可以使用框架中的各个组件。它轻量级,速度快,并且提供了很好的工具来构建你想要的东西。What is symfony?解释了它的好处。此外,使用ORM (我更喜欢Doctrine)也是一种选择,但这完全是另一回事。
3)如果你决定使用symfony2,你可以使用bundles (库)。即使没有框架,实现起来也不会太难,但我在这方面没有任何经验。
4)我没有任何云方面的经验,所以不能对此发表评论。
5)当你在你的项目中添加另一个层时,会有性能上的差异,但它是大是小取决于API、数据库等。但是,使用API将意味着与数据库通信的标准方式,所以即使有性能差异,它在一致性和开发时间方面也可能是有益的(你不需要处理不同的平台来做数据库的事情)。
6) API的有用性在很大程度上取决于应用程序,如果没有关于项目的具体信息,我真的不能说它是否超过了成本。但是,在处理多个平台和语言的IMO时,拥有与数据存储通信的标准化方式通常是一个好主意。因为我不知道你对PHP了解多少,所以我不能评论它是否值得你花时间。如果有足够的时间,我会选择它,因为学习PHP会在你的武器库中添加更多的工具,这将是一个提高自己作为开发人员的好机会。
https://stackoverflow.com/questions/9753571
复制相似问题