PHP API用于从网站的多个部分检索信息?

时间:2011-06-10 23:47:30

标签: php api

我的网站上有各种各样的部分,例如博客,论坛,维基等,我想开发一个包含所有这些部分的API,并允许用户从任何部分提取信息。

用户还应该能够一次从多个部分提取信息(例如最新帖子)并返回结果。 API应该是非常模块化的,以便在添加其他博客时允许轻松添加新部分。

我只是在寻找一个正确的方向来开发这样的东西。

感谢。

4 个答案:

答案 0 :(得分:0)

我认为你应该从在PHP世界中探索MVC设计模式开始,沿途你将找到许多问题的答案......

答案 1 :(得分:0)

听起来你只是想创建一个web service in PHP

网站的“部分”并不十分重要,因为该服务的结构不需要与网站本身相同。可以把它想象成一个位于同一数据库之上的独立站点,更小,没有UI。

例如,如果您创建SOAP service,那么您可能只是为站点的每个部分公开一个或两个(或三个等)函数,接受参数以指定要返回的数据。博客文章的日期范围,论坛帖子的用户ID,维基文章的搜索术语等。

答案 2 :(得分:0)

您可以使用一些格式来提供数据:JSON,XML等。

您必须使用不同的网址来检索数据,例如:

/blog/{id} - >得到一篇博文

/blog/{id}/comments - >获得博客评论

/blog/add - >创建一个博客帖子

用于所有操作(和部分)

在允许用户使用您的API之前,您可能还需要某种身份验证方式。

你能想到的一些事情。

答案 3 :(得分:0)

对于内容网站,很少需要实际的API,除非您希望允许用户和客户发布到您的网站。

您实际需要做的只是将逻辑与演示分开。

每个例子:

$articles = $pdo->query('SELECT * FROM articles')->fetchAll();

if (isset($_GET['type'])) {
    switch ($_GET['type']) {
        case 'json':
            header('Content-Type: application/json');
            echo json_encode($articles);
            break;
        case 'xml':
            header('Content-Type: text/xml');
            // some array to XML function
            break;
    }
} else {
    include 'my_html_template.phtml';
}

当然,这是一个非常基本的例子。但是,一旦将表示与逻辑分离,就可以轻松地创建多种不同格式的模板,这些模板可以使用不同的工具(JSON编码器,XML解析器等)由不同的客户端进行解析(移动应用程序,聚合器服务) ,第三方应用程序等。)。