如何以及在哪里放置API在Codeigniter文件夹中?

时间:2011-04-09 18:01:46

标签: api codeigniter

如何以及在何处将API放入Codeigniter文件夹?

以及如何使用Codeigniter调用API?

谢谢!

2 个答案:

答案 0 :(得分:1)

如果您的站点有API,那么合适的放置位置是应用程序/控制器文件夹中的某个控制器,这就是您如何响应来自外部的API调用。 例如:

class Api extends CI_Controller
{
   //Your code goes here
}

如果您想使用另一个想要获得响应的API,那么最佳做法是在application / libraries / Some_Api.php中创建类,它将处理对外部API的请求和响应,当然您需要在你的控制器,模型等的某个地方调用它......根据你的需要。

修改 的 例如:

class Myapi extends CI_Controller
{
    public function __construct()
    {
        parent::__construct();
    }

    //Here goes your function:
    public function api_call()
    {
        //Some params that Some_Api class will need (if needed of course)
        $params = array('url' => 'https://checkout.google.com', 'username' => 'your_username');

        //Include the library
        require_once(APPPATH.'libraries/Some_Api.php');

        //Create instance of it
        $api = new Some_Api($params);

        //Call the external API and collect the response.
        //In most cases the response is XML and you need to process it as you need it.
        $response = $api->call_some_api_method();

        //Process the response here.
        //Save to database/file, send emails, do whatever you need to.
    }
}

请注意,我使用了一些简单的例子来解释这个过程通常如何进行。大部分工作应该在Some_Api类中完成。 我希望这对你有所帮助!

答案 1 :(得分:0)

我也一直对此有疑问。我会告诉你我的方法,我很想得到反馈。当包含其他人的API时,我已将其包含在模型中

例如

class Model extends CI_Model{

.
. 
.

    function writeLocally{

    //do some stuff


    $this->apiWrite();
    }

    private function apiWrite{

    //api write to 3rd party
    }


}

我猜这不是基于上面答案的最佳方法,但无论如何这是我的两分钱。