关于如何创建mysql Web服务/ api的建议

时间:2011-05-26 18:48:31

标签: php javascript mysql web-services api

如果我的措辞错误,请提前抱歉,因为我不太清楚如何解释我想要的内容,所以我只会描述最终结果。

我有一个名为socialcalc的基于php的excel工具(之前是wikicalc)。我想允许用户连接到数据库并将实时数据拉到工作表上(这样他们就可以对其进行计算)。

我理解,肯定socialcalc必须查询mysql,但我正试图找出最有效的方法。允许它直接查询是否更好?或者我应该让它查询数据库得到一个xml文件作为结果?或者您建议的其他方式是允许对数据进行读取访问的有效且安全的方式吗?

我们正在从头开始构建这个ontop socialcalc很多,所以对所有解决方案都非常开放,但最终,我们希望这能为其他服务提供支持。

更新:澄清一下,我正在寻找有关使用SOAP / XML的建议,比如说直接查询数据库或使用HTTP POST / GET等等。你会建议哪种类型的服务层,或者当你考虑哪些因素时要考虑选择?

2 个答案:

答案 0 :(得分:1)

我认为最好的方法是采用分步行动。

9月1日

让用户在他的Excel工作表中选择他想要实现的数据。怎么做取决于你。

第二步

将用户的选择提交给自己创建的SQL API。此API将检查输入的注入等,并将执行所有查询和数据检索。

第三步

将检索到的数据发送到将创建excel文件的类。

第四步

将创建的excel文件发送给用户。

最重要的部分是SQL api。这是一个处理来自用户的所有输入和与数据库通信的类。它可以使用普通的SQL语句,但您可以使用它来验证所有数据。

希望这对你有用。

答案 1 :(得分:1)

“简单比复杂更好。”

您当然可以在应用程序和MySQL之间实现Web服务层,但问问自己为什么您会想要这个。你可能想要它,因为:

  1. 您计划在未来某个时候更改后端系统,并且不希望在前端应用程序中重构业务逻辑

  2. 您希望将后端数据公开给其他应用程序,并为此提供通用界面

  3. 您希望在中间层实施smoe类缓存/持久性策略

  4. 所有这些都是在您的应用程序和数据库之间使用Web Service层的有效理由。当然还有更多有效,很好的理由。

    如果您无法想到应该实现Web服务层的原因,那就不要这么简单。你总是可以在有充分理由的时候决定。


    修改

    所以你决定继续使用Web服务......恭喜!我想在这种情况下你应该看看两个关键框架,以节省你很多时间:

    1. 获得一个可以生成绝大多数CRUD逻辑的良好ORM框架。 Doctrine是PHP的热门选择。

    2. 使用Web服务框架实现接口和业务逻辑。我过去使用Zend Framework完成了这项工作,因为它们通过REST支持XML和JSON有效负载。如果您需要严格的数据验证要求,XML和SOAP是很棒的,但如果您是唯一一个使用自己的Web服务的人,那么您不需要对自己施加这样的限制,因为您了解自己的要求。在这种情况下,JSON就足够了。

    3. 顺便说一句,我在之前的另一个问题中讨论过Zend的RESTful服务:

      lightweight RESTful PHP server