Использовать REST API с помощью Guzzle 6 - PullRequest
0 голосов
/ 27 октября 2018

Я пытаюсь использовать REST API с помощью Guzzle 6. Я прочитал документацию по Guzzle и получил способ использовать REST API, как показано ниже:

<?php

class Index extends CI_Controller {

    use GuzzleHttp\Client;

    $client = new Client([    
        'base_uri' => 'https://api.rajaongkir.com/basic/'
    ]); //LINE ERROR

    public function __construct() {
        parent::__construct();
        $this->load->helper('url');
    }

    function index() {
        // $client = new GuzzleHttp\Client(['base_uri' => 'https://api.rajaongkir.com/basic/']);
        $key = "b5231ee43b8ee75764bd6a289c4c576d";
        $response = $client->request('GET','province?key='.$key);
        $data['data'] = json_decode($response->getBody());
        $this->load->view('index', $data);
    }
}

Если я объявляю переменную $ client в функции index () нет проблем.Я получаю JSON и я успех, чтобы показать, на мой взгляд.Я хочу только один раз объявить base uri и key , и я могу использовать base uri и key для всех функций, которые у меня есть.

Поэтому я пытаюсь объявить переменную, содержащую base uri и key , в качестве глобальной переменной.Но я получил ошибку в строке $ client .Ошибка:

синтаксическая ошибка, неожиданный «$ client» (T_VARIABLE), ожидающая функция (T_FUNCTION) или const (T_CONST)

Как это исправить?Что не так с моим кодом?

1 Ответ

0 голосов
/ 27 октября 2018

Вы не можете написать любой код непосредственно в определении класса.Вам нужно определить переменную класса (поле) и создать экземпляр класса в конструкторе, например:

class Index extends CI_Controller {

    use GuzzleHttp\Client;
    protected $client;

    public function __construct() {
        parent::__construct();
        $this->load->helper('url');
        $this->client = new Client([    
            'base_uri' => 'https://api.rajaongkir.com/basic/'
        ]); //LINE ERROR
    }

    function index() {
        // $client = new GuzzleHttp\Client(['base_uri' => 'https://api.rajaongkir.com/basic/']);
        $key = "b5231ee43b8ee75764bd6a289c4c576d";
        $response = $client->request('GET','province?key='.$key);
        $data['data'] = json_decode($response->getBody());
        $this->load->view('index', $data);
    }
}
...