在页面上包含API的最有效方法是什么?

时间:2012-02-25 19:21:45

标签: php api class

我正在重建的网站使用自己的API来收集大部分内容(例如http://api.example.com/)。虽然对此的答案是非常自我解释的,但我只想在继续之前确定。

据我所知,我有两个(可能是3个)通过PHP从api加载数据的选项。

  1. 我可以将类加载到文档中并从类中手动收集数据(可能是最好的方法,但需要更多代码,如果对类进行了更改,我必须更改页面和API文档而不是只是更改API)
  2. 使用file_get_contents('http://api.example.com/search')。这将是最简单的方法,但它需要另一个HTTP请求,我认为它稍慢。
  3. 最后,如果这可能,那么我认为这将是最好的方式,但据我所知,我不认为这是可能的。通过实施$_GET参数在本地读取文件,并以此方式获得结果。
  4. 实施例

    1

    // Include the mysql connections
    require_once($_SERVER['DOCUMENT_ROOT'].'/scripts/php/_connections/mysql.company.php');
    
    // Include the Classes (Company and Facebook)
    require_once($_SERVER['DOCUMENT_ROOT'].'/scripts/php/_classes/class.company.php');
    require_once($_SERVER['DOCUMENT_ROOT'].'/scripts/php/_classes/class.mysql.php');
    require_once($_SERVER['DOCUMENT_ROOT'].'/scripts/php/_facebook/config.facebook.php');
    require_once($_SERVER['DOCUMENT_ROOT'].'/scripts/php/_facebook/class.facebook.php');
    
    // Create the objects (Company, MySQL, Memcache and Facebook)
    $memcache = new memcache;
    $facebook = new Facebook($facebook_config);
    $mysql = new mysql($memcache);
    $company = new company($_DATABASES,$_CONNECTIONS,$mysql,$memache,$facebook);
    
    // CALL THE RELEVANT CLASS METHOD HERE
    

    2。 像(忽略错误)

    $API = 'http://api.example.com/search?query=test'
    $data = file_get_contents(url_encode($API));
    

    3。 不确定这是否可行,请注意我不想使用最后一种方法

    $parameters = array(
        'method'=>'GET',
        'parameters'=>array(
            'function'=>'search',
            'query'=>'test'
        )
    );
    $API = some_cool_function('/_scripts/api/2/api/api.php',$parameters);
    
    // I DO NOT WANT TO DO THIS FOR CERTAIN REASONS:
    $_GET=array(
        'function'=>'search',
        'query'=>'test'
    );
    $data = include('/_scripts/api/2/api/api.php');
    

1 个答案:

答案 0 :(得分:2)

通常我会说第一个选项 - 现在大多数API中都有Oauth等,我确信一个包装得很好的类设置会更容易使用。