Langkau ke kandungan utama

CodeIgniter + curl + RestClient + Frapi + selfsigned ssl

Assalamualaikum

Hari ini dan semalam aku cuba gunakan API untuk projek CodeIgniter yang aku tengah buat ni. First time guna API dalam CI ni agak kalut sikit. Namun begitu, akhirnya berjaya jugak.. Berikut adalah target aku :


1. Aplikasi CI mintak data dengan API server.
2. API Server hantar data semula.


Simple je nampak mulanya. Tapi, oleh kerana aku baru je nak try guna CI dengan API ni agak kekok sikit. Berikut adalah kronologi aku jayakan benda ni..

1. Aku setkan API server aku (FRAPI) dengan user dan api-key yang baru.

2. Setkan satu test-function dalam API server untuk kembalikan apa-apa nilai.

Untuk aplikasi ini, aku hanya perlukan sambungan client kepada API server. CodeIgniter telah sedia ada satu library yang merupakan RESTclient. Berikut adalah yang aku gunakan :

https://github.com/philsturgeon/codeigniter-restclient 

CodeIgniter-restclient ini memerlukan :

  1. PHP 5.1+
  2. CodeIgniter 2.0.0+
  3. cURL
  4. CodeIgniter Curl library: http://getsparks.org/packages/curl/show
Install Curl untuk server anda terlebih dahulu sebelum install restclient.

Tapi yang menariknya di sini sebenarnya, ada satu library untuk php ini yang bertindak seolah2 Gem dalam ruby. Library Spark ini membolehkan kita download/install apa sahaja php classes (dipanggil spark packages)  untuk projek kita.

Jom tengok spark library nis..



Sekarang aku andaikan korang takde masalah untuk install RestClient tadi di CI. Berikut adalah kod yang aku gunakan.

config_berapi.php

//api server$config['berapi_api_server'] = 'https://api.berapi.com';//api auth$config['berapi_api_name'] = 'boboboy_api';$config['berapi_api_key'] = 'iniadalahkeyapiyangsepatutnyabase64tapiinicontohsahaja:)';


dalam controller

function test_api(){
   $rest_config = array('server' => $this->config->item('berapi_api_server'),
        'http_user' => $this->config->item('berapi_api_name'),
        'http_pass' => $this->config->item('berapi_api_key'),
        'http_auth' => 'digest',
        'ssl_verify_peer' => FALSE);
    $this->rest->initialize($rest_config);


    $uri = 'berapi/test'

    $this->rest->format('application/json');    
    $result = $this->rest->get($uri, $param);


    echo $result;

}

Penerangan

1. Oleh kerana server api (api.berapi.com) adalah server api sendiri yang tidak ada sijil SSL berbayar, maka kita perlu setkan pada koding supaya TIDAK PERLU SAHKAN sijil SSL. Jika tidak, mesej ralat akan keluar, dan tidak ada nilai dihantar oleh server API.


2. HTTP_AUTH adalah secara DIGEST disetkan pada server API. di atas tu adalah caranya.

3. Fail konfigurasi config_berapi.php diautoload dalam config.php.

4. library berkaitan yang diauto load adalah : curl, rest


semoga berjaya.




Ulasan

Catatan popular daripada blog ini

Apa Maksud RON dalam pengkelasan Petrol?

RON dan Petrol Oleh yusdirman, Oktober 2014 RON adalah singkatan daripada Research Octane Number Ianya kaedah penarafan bahan api. Lebih tinggi nilai RON, lebih mahal harga PETROL. Adakah minyak RON 97 lebih berkuasa berbanding RON 95? RON merujuk kepada tahap bahan api menahan rintangan "ketukan" semasa proses pembakaran oleh palam pencucuh dalam enjin. Ianya merujuk kepada tahap ketahanan bahan api untuk tidak terbakar sebelum dinyalakan oleh palam pencucuh dalam enjin. "ketukan" dalam konteks RON ini adalah apabila campuran bahan api dan udara dalam enjin terbakar lebih awal sebelum api dari palam pencucuh menbakarnya. Pembakaran awal ini mungkin disebabkan enjin terlalu panas. Haba dari silinder enjin itu sendiri mungkin telah menyalakan bahan api sebelum palam pencucuh menyala. Ini boleh menurunkan prestasi dan mungkin boleh memudaratkan enjin! Jadi, RON bukannya bermaksud LEBIH KUASA! Ianya bermaksud bahan api itu dapat menahan tekanan dari...

Rokok Elektronik : Bahaya Untuk Kesihatan atau Membantu Perokok Berhenti Merokok?

Rokok Elektronik, e-rokok -- oleh Ahmad Yusdirman Rokok elektronik adalah nama panggilan kepada alat yang membekalkan dos nikotin dalam bentuk wap dengan memanaskan cecair campuran propylene glycol, glycerol, perasa makanan dan nikotin menjadikannya berbentuk wap dan disedut oleh pengguna. Alat ini memberikan perokok yang ingin berhenti merokok masih mendapatkan dos nikotin dan masih lagi dapat menikmati aktiviti merokok kerana wap yang dikeluarkan adalah kelihatan seumpama asap rokok. Terdapat beberapa nama panggilan untuk rokok elektronik ini termasuklah eRokok, vapor dan ecig. Namun, oleh kerana panggilan rokok elektronik masih menggunakan perkataan 'rokok', ianya masih lagi memberikan stigma kepada masyarakat yang tidak tahu mengenainya. Panggilan 'vapor' yang bermaksud 'wap' adalah lebih ringan diterima masyarakat. Sejarah Rokok elektronik pertama sekali diperkenalkan oleh Herbert A. Gilbert pada tahun 1963[1] namun tidak dikomersilkan dan k...

Server Redundancy - Pertindanan Komputer Pelayan

alkisahnya tercari-cari untuk buat server redundancy ( pertindihan komputer pelayan ) atas sebab perlunya server yang sentiasa on-line tanpa ada downtime yang lama. Dan, cabarannya adalah memang kami tak pernah jalani apa-apa latihan, pengalaman dan apa jua pengetahuan berkenaan teknologi ini. Yang pastinya, perlu banyak mengoogle. Setakat ini, ada banyak kaedah untuk memastikan aplikasi masih terus boleh berfungsi walaupun server mati/rosak. 1. guna 2 server yang sama. Bila satu mati, satu lagi yang masih hidup dapat terus melayan pengguna. 2. guna 2 talian rangkaian yang berbeza. Bila satu talian rosak/putus, masih ada satu lagi talian rangkaian yang berfungsi. 3. storan di server guna raid ( redundant array of independent disk ) atau dalam bahasa melayu : barisan disk berlainan yang bertindan. Raid dapat menjadikan sebilangan hd menjadi 1 dengan semua data pada 1 hd adalah sama dengan data pada hd 2. (mirroring) 4. satu IP maya untuk sebilangan server. 2 server yang mena...