() translation by (you can also view the original English article)
CodeIgniter menjadi terkenal karena kekuatannya sebagai framework aplikasi web berbasis PHP, namun tidak jarang kita melihat contoh penggunaannya untuk hal lain. Hari ini kita akan belajar bagaimana kita bisa menggunakan CodeIgniter untuk membuat RESTful API untuk aplikasi web Anda yang sudah ada, dan menunjukkan bagaimana berinteraksi dengan API Anda sendiri atau layanan web RESTful lainnya, seperti Facebook dan Twitter.
Rincian tutorial
- Program: CodeIgniter, server REST CodeIgniter dan klien REST CodeIgniter
- Kesulitan: Medium
- Perkiraan Waktu Penyelesaian: 30 menit
Pengenalan
Jika Anda telah mengikuti seri CodeIgniter Dari Awal, Anda akan tahu sekarang bahwa ini relatif cepat dan mudah untuk mengumpulkan aplikasi web sederhana, seperti blog, sistem CMS, situs brosur, dll. Satu hal yang mungkin tidak Anda pikirkan adalah menggunakan CodeIgniter untuk membuat API interaktif. Setelah mencoba beberapa implementasi REST yang ada, saya menemukan bahwa mereka tidak hanya kekurangan kesederhanaan namun kehilangan sebagian besar fitur yang Anda harapkan dari implementasi RESTful; jadi saya membangunnya sendiri. Tutorial ini akan menunjukkan cara menggunakan kode ini untuk menyiapkan REST API Anda, dan memberikan contoh bagaimana cara berinteraksi dengannya dari aplikasi web Anda.
Asumsi
- Anda memiliki server web yang sudah siap, lokal atau online dan mengetahui bagaimana mengelola file di dalamnya.
- Anda telah membaca beberapa tutorial CodeIgniter dari awal.
- Anda tahu cara mengatur CodeIgniter.
- Anda tahu sedikit tentang RESTful.
Tutorial ini dibagi menjadi dua bagian. Kita akan mulai dengan mempelajari bagaimana membuat layanan RESTful, kemudian melanjutkan, kita akan belajar bagaimana berinteraksi dengannya dalam beberapa cara yang berbeda.
Bagian 1 - Membuat RESTful API
Langkah 1: Menyiapkan Demo
Pertama, Anda perlu mendownload kode codeigniter-restserver dari GitHub dan mengekstraknya dan memindahkan kode ke server Anda.



Ketika Anda membuka folder tersebut, Anda akan melihat seluruh instalasi CodeIgniter, yang berada disana untuk menjalankan demonya. Ini memungkinkan orang bermain dengan demo REST sebelum mengintegrasikannya dengan aplikasi yang ada.
Buka "application/config/config.php" dan tetapkan base_url agar link bekerja. Base_url ini akan berbeda pada semua orang dan sepenuhnya bergantung di mana Anda mengupload file Anda.



Langkah 2: URL
Dengan file yang diekstrak dan base_url sudah ditetapkan, kita siap untuk memuat instalasi RESTful CodeIgniter, dan melihat demo yang disertakan dengannya. Jelajahi URL dasar, yang secara default adalah:
http://localhost/restserver
Di sini Anda akan menemukan beberapa contoh link ke controller example_api, yang dapat ditemukan di "application/controllers/example_api.php". Mari kita membedah URL dari contoh-contoh ini untuk melihat apa yang sedang terjadi. URL pertama adalah URL yang sangat sederhana.



URL ini terlihat sangat mirip dengan URL CodeIgniter lainnya dengan controller dan metode, namun Anda akan melihat di diagram ini bahwa metodenya diberi nama "Resource". REST adalah semuanya tentang Sumber Daya dan mereka pada dasarnya adalah kata benda dalam aplikasi Anda, yang berinteraksi dengan (yaitu ditambahkan, dihapus, diedit, di-queri) berdasarkan header HTTP dan string query URL atau argumen HTTP.
Format default untuk output adalah XML yang merupakan apa yang kita lihat dalam contoh dasar ini. Link lainnya sedikit lebih besar dan menunjukkan bagaimana cara melewatkan parameter dan bagaimana menunjukkan format output dapat dimodifikasi di URL:



Biasanya di CodeIgniter, Anda hanya melewatkan nilai parameter, namun controller REST menerima sejumlah parameter dalam urutan apapun. Agar bisa bekerja, kita harus melewatkan nama dari parameter yang diikuti dengan nilai berpasangan.
Di akhir URL adalah parameter "format". Ini adalah parameter yang sudah dipesan yang akan memodifikasi format output dari data yang diminta seperti:



Dengan memberikan pilihan format data yang akan digunakan kepada pengembang API dan aplikasi klien, API dibuka untuk audiens yang jauh lebih luas dan dapat digunakan dengan lebih banyak bahasa dan sistem pemrograman. Ketiganya bukanlah satu-satunya format yang didukung, di luar kotaknya REST API Anda dapat digunakan:
- xml - hampir semua bahasa pemrograman bisa membaca XML
- json - berguna untuk JavaScript dan semakin banyak pada aplikasi PHP.
- csv - dibuka dengan program spreadsheet
- html - tabel HTML sederhana
- php - Representasi kode PHP yang bisa di-eval()
- serialize - Data terstruktur yang dapat dipilah dalam PHP
Meskipun menambahkan format ke URL secara teknis bukanlah cara kebanyakan RESTful untuk mengubah format, namun memungkinkan pengujian browser yang mudah dan memungkinkan pengembang melakukan permintaan GET sederhana pada API tanpa cURL. Cara kebanyakan RESTful adalah mengirim header HTTP Content-type ke controller REST menggunakan cURL, namun akan dijelaskan nanti.
Langkah 3: Kode
Sekarang jika Anda membuka application/controllers/example_api.php Anda akan segera menemukan beberapa perbedaan dari controller CodeIgniter normal.
REST_Controller
Dalam pola MVC, sebuah controller adalah titik pusat logika. Ini dipanggil ketika pengguna membuat permintaan dan kemudian berdasarkan logika di controller itu mengambil data dan output dilihat. CodeIgniter berisi logikanya sendiri agar bagaimana Controller bekerja, tapi karena kita melakukan sesuatu yang berbeda, kita memerlukan pustaka REST_Controller kita sendiri untuk mengandung logika terkait REST sendiri. Jadi, bukannya hanya menggunakan:
1 |
<?php
|
2 |
class Example_api extends Controller { |
3 |
|
4 |
}
|
...Anda akan perlu menggunakan:
1 |
<?php
|
2 |
require(APPPATH'.libraries/REST_Controller.php'); |
3 |
|
4 |
class Example_api extends REST_Controller { |
5 |
|
6 |
}
|
Bekerja dengan Sumber Daya
Sekarang controller kosong Anda sudah diatur, berikutnya adalah metode atau "sumber daya". Ini mungkin adalah bagian tutorial yang paling membingungkan jika Anda terbiasa dengan cara kerja CodeIgniter. Pada dasarnya, Anda mengambil kata kerja Resource dan HTTP dan menggabungkannya untuk membuat nama metode. Jadi dua contoh yang kita lihat sebelumnya memiliki Sumber Daya pengguna user dan users. Karena keduanya dimuat di browser, kita tahu itu menggunakan permintaan GET dan dua metode di bawah ini digunakan:
1 |
<?php
|
2 |
require(APPPATH'.libraries/REST_Controller.php'); |
3 |
|
4 |
class Example_api extends REST_Controller { |
5 |
|
6 |
function user_get() |
7 |
{
|
8 |
// respond with information about a user
|
9 |
}
|
10 |
|
11 |
function users_get() |
12 |
{
|
13 |
// respond with information about several users
|
14 |
}
|
15 |
}
|
Ini mungkin tampak sedikit aneh, namun memberi Anda kemampuan untuk menggunakan URL yang sama dan menanggapi permintaan tersebut tergantung pada kata kerja HTTP yang telah digunakan. Jika seseorang mencoba mengakses API Anda dengan cara yang tidak diizinkan (dalam contoh ini PUT atau DELETE), itu akan meresponnya dengan 404 saja. Jika Anda tidak yakin tentang kata kerja HTTP, mari saya jelaskan.
GET
Digunakan untuk mengambil informasi tentang sumber daya yang ada. Ini digunakan oleh browser saat Anda memasukkan URL dan menekan go, atau saat Anda mengklik link, jadi sangat cocok untuk mengambil informasi tentang salah satu sumber daya REST Anda (seperti pengguna).
POST
Digunakan untuk memperbarui sumber daya yang ada dengan informasi. Browser menggunakan ini untuk mengirimkan sebagian besar jenis form di internet, walaupun beberapa menggunakan GET juga dengan mengirimkan form dengan string query yang berisi data dari field.
PUT
Yang kurang umum digunakan dan tidak didukung oleh sebagian besar browser, PUT biasanya digunakan untuk membuat sumber daya baru.
DELETE
Juga tidak digunakan oleh banyak browser, kata kerja HTTP ini agak jelas digunakan untuk menghapus sumber daya.
Jika kita memasukkannya ke dalam kode dan mengijinkan setiap kata kerja pada sumber daya user akan terlihat seperti ini:
1 |
<?php
|
2 |
require(APPPATH'.libraries/REST_Controller.php'); |
3 |
|
4 |
class Example_api extends REST_Controller { |
5 |
|
6 |
function user_get() |
7 |
{
|
8 |
// respond with information about a user
|
9 |
}
|
10 |
|
11 |
function user_put() |
12 |
{
|
13 |
// create a new user and respond with a status/errors
|
14 |
}
|
15 |
|
16 |
function user_post() |
17 |
{
|
18 |
// update an existing user and respond with a status/errors
|
19 |
}
|
20 |
|
21 |
function user_delete() |
22 |
{
|
23 |
// delete a user and respond with a status/errors
|
24 |
}
|
25 |
}
|
Mengakses parameter dan mengembalikan data
Jadi sekarang API telah diberi strukturnya dengan menetapkan sumber daya dan menentukan metode untuk setiap kata kerja HTTP yang ingin kita dukung; kita membutuhkan parameter sehingga kita bisa menggunakan model dan pustaka CodeIgniter kita. Inilah salah satu manfaat utama penggunaan CodeIgniter untuk API kita, karena kita dapat menggunakan model dan pustaka kami yang ada dan tidak perlu mengkode ulang mereka.
1 |
<?php
|
2 |
require(APPPATH'.libraries/REST_Controller.php'); |
3 |
|
4 |
class Example_api extends REST_Controller { |
5 |
|
6 |
function user_get() |
7 |
{
|
8 |
$data = array('returned: '. $this->get('id')); |
9 |
$this->response($data); |
10 |
}
|
11 |
|
12 |
function user_post() |
13 |
{
|
14 |
$data = array('returned: '. $this->post('id')); |
15 |
$this->response($data); |
16 |
}
|
17 |
|
18 |
function user_put() |
19 |
{
|
20 |
$data = array('returned: '. $this->put('id')); |
21 |
$this->response($data; |
22 |
}
|
23 |
|
24 |
function user_delete() |
25 |
{
|
26 |
$data = array('returned: '. $this->delete('id')); |
27 |
$this->response($data); |
28 |
}
|
29 |
}
|
Contoh ini berisi lima potongan kode baru:
$this->get()
Digunakan untuk mengembalikan variabel GET baik dari string query seperti index.php/ example_api/user?id=1 ini atau bisa di atur dengan cara lebih CodeIgniter dengan index.php/example_api/user/id/1.
$this->post()
Adalah alias untuk $this->input->post() yang merupakan metode CodeIgniter untuk mengakses variabel $_POST dengan perlindungan XSS.
$this->put()
Membaca argumen PUT yang ada di header HTTP atau melalui cURL.
$this->delete()
Anda bisa menebaknya, ini membaca dalam argumen DELETE, juga ditetapkan di header HTTP atau melalui cURL.
$this->response()
Mengirim data ke browser dalam format data mana pun yang diminta, atau defaultnya adalah XML. Anda dapat secara opsional melewatkan kode status HTTP agar menunjukkan apakah berhasil atau gagal. Misalnya jika ID yang diberikan tidak ada dalam database, Anda bisa menggunakan $this->response(array('error' => 'User not found.'), 404);
Langkah 4: Bekerja dengan Model Anda
Sampai sekarang, kita sudah bekerja dengan contoh API pada instalasi bersih. Jadi langkah selanjutnya adalah menjalankan REST API yang berjalan dari basis kode yang ada.

Meskipun download dilengkapi dengan instalasi CodeIgniter lengkap untuk demo dan untuk memungkinkan API dibangun dari nol, hanya dua file penting adalah:
- application/config/rest.php
- application/libraries/REST_Controller.php
Letakkan kedua file tersebut ke dalam aplikasi CodeIgniter Anda dan buatlah controller API baru.
1 |
<?php
|
2 |
require(APPPATH.'/libraries/REST_Controller.php'); |
3 |
|
4 |
class Api extends REST_Controller |
5 |
{
|
6 |
function user_get() |
7 |
{
|
8 |
if(!$this->get('id')) |
9 |
{
|
10 |
$this->response(NULL, 400); |
11 |
}
|
12 |
|
13 |
$user = $this->user_model->get( $this->get('id') ); |
14 |
|
15 |
if($user) |
16 |
{
|
17 |
$this->response($user, 200); // 200 being the HTTP response code |
18 |
}
|
19 |
|
20 |
else
|
21 |
{
|
22 |
$this->response(NULL, 404); |
23 |
}
|
24 |
}
|
25 |
|
26 |
function user_post() |
27 |
{
|
28 |
$result = $this->user_model->update( $this->post('id'), array( |
29 |
'name' => $this->post('name'), |
30 |
'email' => $this->post('email') |
31 |
));
|
32 |
|
33 |
if($result === FALSE) |
34 |
{
|
35 |
$this->response(array('status' => 'failed')); |
36 |
}
|
37 |
|
38 |
else
|
39 |
{
|
40 |
$this->response(array('status' => 'success')); |
41 |
}
|
42 |
|
43 |
}
|
44 |
|
45 |
function users_get() |
46 |
{
|
47 |
$users = $this->user_model->get_all(); |
48 |
|
49 |
if($users) |
50 |
{
|
51 |
$this->response($users, 200); |
52 |
}
|
53 |
|
54 |
else
|
55 |
{
|
56 |
$this->response(NULL, 404); |
57 |
}
|
58 |
}
|
59 |
}
|
60 |
?>
|
Ini menunjukkan contoh API dengan beberapa nama model generik. Pada metode pertama, kita mengambil sebuah ?id=XX dan menyampaikannya ke model. Jika data ditemukan, kita mengirimkannya ke fungsi $this->response() dengan status 200. Jika tidak ada yang ditemukan, mengembalikan bukan body dan 404 mengatakan tidak ada yang ditemukan. Anda bisa membayangkan bagaimana hal ini dapat diperluas untuk menjalankan semua jenis aktivitas API untuk aplikasi web Anda.
Langkah 5: Mengamankan API
Sekarang API Anda dibangun yang perlu pengamanan sehingga hanya pengguna yang diberikan akses yang dapat berinteraksi dengan API. Untuk mengatur jenis login, nama pengguna dan kata sandi, bukalah "application/config/rest.php" di dalam basis kode Anda.
1 |
/*
|
2 |
|--------------------------------------------------------------------------
|
3 |
| REST Login
|
4 |
|--------------------------------------------------------------------------
|
5 |
|
|
6 |
| Is login required and if so, which type of login?
|
7 |
|
|
8 |
| '' = no login required, 'basic' = relatively secure login, 'digest' = secure login
|
9 |
|
|
10 |
*/
|
11 |
$config['rest_auth'] = 'basic'; |
None
Siapa pun dapat berinteraksi dengan salah satu dari controller API Anda.
Basic
Metode login yang relatif tidak aman yang seharusnya hanya digunakan pada jaringan internal/aman.
Digest
Metode login yang jauh lebih aman yang mengenkripsi usernames and password. Jika Anda ingin memiliki API terlindungi yang bisa digunakan siapa saja, gunakan digest.
1 |
/*
|
2 |
|--------------------------------------------------------------------------
|
3 |
| REST Login usernames
|
4 |
|--------------------------------------------------------------------------
|
5 |
|
|
6 |
| Array of usernames and passwords for login
|
7 |
|
|
8 |
| array('admin' => '1234')
|
9 |
|
|
10 |
*/
|
11 |
$config['rest_valid_logins'] = array('admin' => '1234'); |
Menyiapkan pengguna sangat sederhana. Setiap login adalah item array, dengan kunci dan nilai. Kuncinya adalah username dan nilainya adalah password. Tambahkan sebanyak yang Anda suka ke array ini dan sajikan mereka untuk siapa saja yang akan menggunakan API.
Bagian 2 - Berinteraksi dengan Layanan RESTful
Entah itu API yang baru saja Anda bangun atau layanan publik seperti Twitter, Anda pasti ingin bisa berinteraksi dengannya. Melihat layanan RESTful bekerja dengan permintaan HTTP dasar, sangat mudah melakukannya dengan sejumlah cara yang berbeda.
Metode yang Berbeda untuk Berinteraksi dengan REST
Masing-masing metode interaksi yang berbeda ini akan ditunjukkan dengan kode yang ditempatkan secara langsung dalam metode Controller. Ini murni sehingga demo lebih mudah dibaca dan biasanya akan ditempatkan di dalam model atau pustaka untuk pemisahan MVC yang benar.
file_get_contents()
Dengan menggunakan fungsi file_get_contents() PHP yang sederhana, Anda dapat melakukan permintaan GET dasar. Ini adalah metode yang paling mendasar dari semua metode namun perlu disebutkan untuk momen "cepat dan kotor".
1 |
$user = json_decode( |
2 |
file_get_contents('http://example.com/index.php/api/user/id/1/format/json') |
3 |
);
|
4 |
|
5 |
echo $user->name; |
Perlu dicatat bahwa, sementara metode ini tidak akan bekerja menggunakan otentikasi HTTP Digest, jika Anda menggunakan otentikasi HTTP Basic, Anda dapat menggunakan sintaks berikut untuk mendapatkan data dari RESTful API yang dilindungi password Anda:
1 |
$user = json_decode( |
2 |
file_get_contents('http://admin:1234@example.com/index.php/api/user/id/1/format/json') |
3 |
);
|
4 |
|
5 |
echo $user->name; |
Ada beberapa masalah dengan menggunakan metode ini: satu-satunya cara menetapkan header HTTP tambahan adalah dengan mengaturnya secara manual menggunakan fungsi PHP stream_context_create(), yang bisa sangat rumit bagi pengembang yang baru mengenal cara kerja internal permintaan HTTP. Kelemahan lainnya adalah Anda hanya menerima body dari respons HTTP dalam format aslinya, yang berarti Anda perlu menangani konversi dari permintaan tunggal.
cURL
cURL adalah cara paling fleksibel untuk berinteraksi dengan REST API karena dirancang untuk hal yang persis seperti ini. Anda dapat mengatur header HTTP, parameter HTTP dan banyak lagi. Berikut adalah contoh bagaimana cara memperbarui pengguna dengan example_api dan cURL kita untuk membuat permintaan POST:
1 |
function native_curl($new_name, $new_email) |
2 |
{
|
3 |
$username = 'admin'; |
4 |
$password = '1234'; |
5 |
|
6 |
// Alternative JSON version
|
7 |
// $url = 'http://twitter.com/statuses/update.json';
|
8 |
// Set up and execute the curl process
|
9 |
$curl_handle = curl_init(); |
10 |
curl_setopt($curl_handle, CURLOPT_URL, 'http://localhost/restserver/index.php/example_api/user/id/1/format/json'); |
11 |
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1); |
12 |
curl_setopt($curl_handle, CURLOPT_POST, 1); |
13 |
curl_setopt($curl_handle, CURLOPT_POSTFIELDS, array( |
14 |
'name' => $new_name, |
15 |
'email' => $new_email |
16 |
));
|
17 |
|
18 |
// Optional, delete this line if your API is open
|
19 |
curl_setopt($curl_handle, CURLOPT_USERPWD, $username . ':' . $password); |
20 |
|
21 |
$buffer = curl_exec($curl_handle); |
22 |
curl_close($curl_handle); |
23 |
|
24 |
$result = json_decode($buffer); |
25 |
|
26 |
if(isset($result->status) && $result->status == 'success') |
27 |
{
|
28 |
echo 'User has been updated.'; |
29 |
}
|
30 |
|
31 |
else
|
32 |
{
|
33 |
echo 'Something has gone wrong'; |
34 |
}
|
35 |
}
|
Berinteraksi dengan API Anda dengan cara ini boleh-boleh saja, namun ada dua masalah dengan metode ini:
- Menggunakan sintaks yang jelek membingungkan - bayangkan membuat beberapa aplikasi berdasarkan itu.
- cURL tidak diinstal pada semua server secara default.
Untuk mengatasi sintaks jelek ini, sebuah pustaka cURL telah dikembangkan untuk CodeIgniter yang menyederhanakan banyak hal.
Permintaan yang sama persis yang dibuat dengan pustaka cURL akan terlihat seperti ini:
1 |
function ci_curl($new_name, $new_email) |
2 |
{
|
3 |
$username = 'admin'; |
4 |
$password = '1234'; |
5 |
|
6 |
$this->load->library('curl'); |
7 |
|
8 |
$this->curl->create('http://localhost/restserver/index.php/example_api/user/id/1/format/json'); |
9 |
|
10 |
// Optional, delete this line if your API is open
|
11 |
$this->curl->http_login($username, $password); |
12 |
|
13 |
$this->curl->post(array( |
14 |
'name' => $new_name, |
15 |
'email' => $new_email |
16 |
));
|
17 |
|
18 |
$result = json_decode($this->curl->execute()); |
19 |
|
20 |
if(isset($result->status) && $result->status == 'success') |
21 |
{
|
22 |
echo 'User has been updated.'; |
23 |
}
|
24 |
|
25 |
else
|
26 |
{
|
27 |
echo 'Something has gone wrong'; |
28 |
}
|
29 |
}
|
Jauh lebih baik untuk melihatnya kan? Nah, ada metode yang lebih mudah lagi untuk bekerja dengan REST di aplikasi CodeIgniter Anda yang ini.
Pustaka klien REST
Sebuah pustaka klien REST telah dikembangkan yang berada di atas pustaka cURL ini yang menangani konversi format, login HTTP dan beberapa aspek lain dari REST API Anda.
1 |
function rest_client_example($id) |
2 |
{
|
3 |
$this->load->library('rest', array( |
4 |
'server' => 'http://localhost/restserver/index.php/example_api/', |
5 |
'http_user' => 'admin', |
6 |
'http_pass' => '1234', |
7 |
'http_auth' => 'basic' // or 'digest' |
8 |
));
|
9 |
|
10 |
$user = $this->rest->get('user', array('id' => $id), 'json'); |
11 |
|
12 |
echo $user->name; |
13 |
}
|
Di sini Anda bisa melihat kita membuat permintaan GET, mengirim id sebagai parameter dan memberi tahu pustaka bahwa kita ingin 'json' sebagai format kontennya. Ini menangani pengaturan Content-type untuk Anda, dan mengubah data menjadi objek PHP untuk Anda. Anda dapat mengubah nilai ini menjadi 'xml', 'json', 'serialize', 'php', 'csv' atau jenis MIME kustom yang Anda suka, misalnya:
1 |
$user = $this->rest->get('user', array('id' => $id), 'application/json'); |
Seperti yang mungkin Anda duga dan juga $this->rest->get(), pustaka juga mendukung $this->rest->post(), $this->rest->put(), $this->rest->delete() untuk mencocokkan semua metode REST_Controller Anda.
Anda perlu hasil var_dump() yang berasal dari pustaka klien REST untuk memastikan Anda mendapatkan kembali format data yang benar. Konversi kadang-kadang akan menjadi array dan terkadang menjadi objek, tergantung bagaimana konversi oleh PHP. Jika jenis MIME yang dikembalikan tidak didukung maka hanya akan mengembalikan format sebagai teks biasa.
Berbicara dengan Twitter
Dengan menggunakan pustaka REST ini Anda bisa berbicara dengan layanan RESTful lainnya seperti Twitter dan Facebook. Berikut adalah contoh sederhana bagaimana Anda bisa mendapatkan detail untuk pengguna tertentu berdasarkan ID mereka, dengan menggunakan format XML default Twitter.
1 |
$this->load->library('rest', array('server' => 'http://twitter.com/')); |
2 |
|
3 |
$user = $this->rest->get('users/show', array('screen_name' => 'philsturgeon')); |
1 |
$this->load->library('rest', array( |
2 |
'server' => 'http://twitter.com/', |
3 |
'http_user' => 'username', |
4 |
'http_pass' => 'password', |
5 |
'http_auth' => 'basic' |
6 |
));
|
7 |
|
8 |
$user = $this->rest->post('statuses/update.json', array('status' => 'Using the REST client to do stuff')); |
Melihat ini, Anda akan melihat bahwa berinteraksi dengan API Twitter sedikit berbeda dalam beberapa cara.
- Mereka mendukung format berbasis URL yang berganti dalam bentuk .json bukannya /format/json. Beberapa memerlukan ekstensi, beberapa tidak; jadi yang terbaik adalah selalu menambahkannya.
- Mereka kebanyakan hanya mendukung GET/POST, namun mulai menambahkan lagi metode DELETE.
- Mereka tidak selalu hanya memiliki sumber daya di URL mereka, misalnya: users/search adalah satu metode REST, namun lists adalah yang lainnya.
Awasi perbedaan ini karena mereka bisa menjebak Anda. Jika Anda terjebak, cukup echo $this->rest->debug() untuk keseluruhan rentang informasi tentang permintaan REST Anda.
Ringkasan
Menggabungkan apa yang sekarang Anda ketahui tentang layanan RESTful, pustaka klien REST CodeIgniter dan dokumentasi API Twitter - atau dokumentasi RESTful API lain dalam hal ini - Anda dapat membuat beberapa aplikasi hebat yang terintegrasi dengan layanan web kustom atau publik menggunakan REST. Anda dapat memperpanjang API Anda dengan membuat lebih banyak REST_Controller dan bahkan membuat API modular dengan menggunakan Matchbox atau Modular Separation untuk membuat controller api.php untuk setiap modul agar membantu API Anda tetap tertata rapi sebagai aplikasi Anda.
Menulis Tutorial Plus
Apakah Anda tahu bahwa Anda bisa mendapatkan hingga $600 untuk menulis tutorial PLUS dan/atau screencast untuk kami? Kami sedang mencari tutorial mendalam dan yang ditulis dengan baik tentang HTML, CSS, PHP, dan JavaScript. Jika Anda memiliki kemampuan tersebut, silakan hubungi Jeffrey di nettuts@tutsplus.com.
Harap dicatat bahwa kompensasi yang sebenarnya akan tergantung pada kualitas akhir dari tutorial dan screencast.
- Ikuti kami di Twitter, atau berlangganan ke Nettuts+ RSS Feed untuk tutorial pengembangan web terbaik di web.