为动态网站使用RESTful API

时间:2011-01-14 08:06:34

标签: php mysql rest

PHP和MySQL

在构建动态网站(可以是个人,网络应用等)时,是否适合使用API​​请求调用而不是MySQL查询?

我的函数getArticles()中的示例,我应该使用本机MySQL查询,如:

$sql = 'SELECT id, title, content
        FROM r_articles'
$result = mysql_query($sql) or die ('.. bla bla');

或者,只需执行一个GET请求:http://mysite.com/api/articles。然后(应该是JSON中的响应)格式化响应。

注意:首先要创建API。

3 个答案:

答案 0 :(得分:6)

这完全取决于您网站的类型。 如果您正在构建一个只有Web界面的小项目,请继续使用您的mysql调用。

如果您正在建立一个规模越来越大并且提供多项服务的网站,例如:已经计划好了android / iPhone应用程序,构建api并让两个应用程序都使用它。 API非常适合可扩展性并为许多客户提供服务。 但是,对于网络表示,例如对于你的当地人来说牙医只是头顶上的。

答案 1 :(得分:1)

我的两分钱:

我认为很多都取决于应用程序。如果期望广泛部署应用程序(通过企业/等),使得多个站点需要访问此应用程序所执行的相同对象,则查询Web服务以查找您的Article对象可能会导致更清洁,更多可重复使用的代码。

与此同时,我认为还有一些额外的工作涉及工程和实现这种解决方案,还有一些额外的开销涉及从PHP脚本进行额外的GET请求来进行这种处理。此外,可能存在安全风险,使得可能需要检查这样的外部接口。

因此,我的建议是保持对象很好地封装并使用SQL构建它们,如果站点是本地的和/或小的(因为总有选择通过SOAP或JSON提供它们或者你以后有什么,如果你做对了 :)。另一方面,如果这将是一个更大规模的分布式应用程序,那么我会投票花费时间在一开始构建某种服务框架API thingamajig,因为你以后可能会需要它

答案 2 :(得分:1)

就个人而言,我发现这种方法非常棒。如果您知道将来会使用该API,它可以确保您的API具有与网站相同的功能并整合您的所有逻辑。缺点是你可能会有一些额外的开销。

P.S。根据您的服务/网站的预期大小,您可能希望将该API放在其子域(api.website.com)上。