Как и где разместить API в папке Codeigniter? - PullRequest
1 голос
/ 09 апреля 2011

Как и где разместить API в папке Codeigniter?

и как вызвать API с помощью Codeigniter?

спасибо!

Ответы [ 2 ]

1 голос
/ 09 апреля 2011

Если на вашем сайте есть API, то подходящее место для размещения - это какой-то контроллер в папке вашего приложения / контроллеров, именно так вы можете отвечать на вызовы API извне. Пример:

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

Если вы хотите использовать другой API, от которого хотите получать ответы, хорошей практикой будет создание класса в application / library / Some_Api.php, который будет обрабатывать запросы и ответы на внешний API, конечно же, вам понадобится вызывать его где-нибудь в своих контроллерах, моделях и т. д. в зависимости от ваших потребностей.

EDIT Пример для этого будет:

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. Я надеюсь, что это поможет вам!

0 голосов
/ 16 апреля 2013

У меня всегда тоже был вопрос по этому поводу.Я расскажу вам о своем подходе и хочу получить обратную связь.При включении чужого API я включил его в модель

Например

class Model extends CI_Model{

.
. 
.

    function writeLocally{

    //do some stuff


    $this->apiWrite();
    }

    private function apiWrite{

    //api write to 3rd party
    }


}

Я предполагаю, что это не лучший подход, основанный на ответе выше, но в любом случае это мои двацентов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...