Как restserver и restclient работают вместе в CodeIgniter

Как это настроить, я прочитал руководство http://code.tutsplus.com/tutorials/working-with-restful-services-in-codeigniter-2--net-8814. Но я не могу понять идею, я хочу больше деталей. Я очень новичок в CodeIgniter и API.

Я сделал следующие шаги из статьи nettuts

  • загрузите как restclient, так и restserver и curl
  • Пробую запускать примеры с rest-сервера, мне ничего не показывает. Я загружаю свой собственный контроллер и методы

person MichaelMHerbert    schedule 03.06.2015    source источник
comment
Пробовали ли вы использовать обучающий код по умолчанию? Это работает?   -  person Tpojka    schedule 03.06.2015
comment
спасибо за ответ. да я сначала пробую пример   -  person MichaelMHerbert    schedule 03.06.2015
comment
Это не работает со свежей установкой CI и учебными файлами/кодом по умолчанию? Вы это утверждаете?   -  person Tpojka    schedule 03.06.2015
comment
Я просто запускаю пример с сервера отдыха, и он дает мне ошибку: используйте ci версии 3, а я использую ci версии 2.2.   -  person MichaelMHerbert    schedule 03.06.2015
comment
Я немного запутался. Часть 2. Взаимодействие со службами RESTful.   -  person MichaelMHerbert    schedule 03.06.2015
comment
Да, ты прав. Код для сервера REST предназначен для использования с CI3 и PHP 5.4. Но в описании упоминается загрузка старых версий. Попробуйте это или обновите CI до 3.0.   -  person Tpojka    schedule 03.06.2015
comment
спасибо @Tpojka, теперь все работает отлично.   -  person MichaelMHerbert    schedule 03.06.2015
comment
Я рад, что смог помочь. Удачного кодирования.   -  person Tpojka    schedule 03.06.2015
comment
Я все еще не понимаю, где проверить мой API-интерфейс restful-сервера и как получить пользовательский ввод.   -  person MichaelMHerbert    schedule 04.06.2015
comment
Что вы пытаетесь сделать? Вам нужно отредактировать свой вопрос и записать код, который вы используете, чтобы помочь нам понять, в чем проблема. Мне нравится упоминать этот источник как отличный помог мне и многим.   -  person Tpojka    schedule 04.06.2015


Ответы (1)


ОТДЫХ СЕРВЕР:

это сервер, который слушает запрос клиента (restClient). RESTServer имеет методы запроса: POST()
GET()
PUT()
DELETE()

и они используются как index_put(); имейте в виду, что когда вы вызываете его из RESTClient, вы будете называть его так:

$this->index();

нет

$this->index_put(); //because restserver it self recognize the nature of request through header.

Вот простой пример:

RESTКлиент:

function request_test() {
        $this->load->library('rest', array(
            'server' => 'http://restserver.com/customapi/api/',
             //when not use keys delete these two liness below
            'api_key' => 'b35f83d49cf0585c6a104476b9dc3694eee1ec4e',
            'api_name' => 'X-API-KEY',
        ));
        $created_key = $this->rest->post('clientRequest', array(
            'id' => '1',
            'CustomerId' => '1',
            'amount' => '2450',
            'operatorName' => 'Jondoe',
        ), 'json');
        print_r($created_key);
        die;

    }
  • Убедитесь, что вы загрузили оставшуюся библиотеку.

РЕСТСЕРВЕР:

<?php
require APPPATH . '/libraries/REST_Controller.php';

class api extends REST_Controller {
  public function clientRequest_post() {
    //to get header 
    $headers=array();
    foreach (getallheaders() as $name => $value) {
        $headers[$name] = $value;
    }
    //to get post data
    $entityBody = file_get_contents('php://input', 'r');
    parse_str($entityBody , $post_data);

    //giving response back to client 
    $this->response('success', 200);


  }
}

конфигурация config/Rest.php:

 //if you need no authentication see it's different option in the same file
    $config['rest_auth'] = false;

 //for enabling/disabling API_KEYS
$config['rest_enable_keys'] = FALSE;
person Abdul Manan    schedule 13.06.2015