Bismillaahirrohmaanirrohiim…
Sudah pernah mendengar istilah rest api?
hmmmm… disini saya akan mencoba membuat tutorial tentang bagaimana cara membuat sendiri rest api dengan php mysql yang mudah.
dibanyak tempat kita dapat menemukan banyak sekali artikel atau tutorial tentang rest api dan sejenisnya, namun kadang kita bingung dengan banyaknya model dan contoh yang berbeda-beda.
Untuk itu saya mencoba membuat contoh rest api yang mudah bagi pemula seperti saya ini.
REST (Representational State Transfer) dan API (Application Programming Interfaces) biasa digunakan untuk berkomunikasi antara klien dan server. Selain REST, ada juga metode yang lain semacam soap web service, dll.
Disisi server kita buat API nya, lalu bisa dipanggil oleh satu atau lebih klien.
Misalkan kita mempunyai database (mysql) “produk” di server, kemudian kita membuat website dan aplikasi android sebagai klien.
Website dan aplikasi android tidak perlu membuat database lagi, cukup mengambil database “produk” dari server via HTTP.
output dari API tersebut biasanya berupa JSON atau XML.
Umumnya dokumentasi API akan menyertakan:
– URL API
– Method GET/POST
– Parameter
langsung saja kita memulai membuat api di server ya, bisa di localhost atau VPS…
1. Buat database dan tabel mysql
Buka phpMyAdmin atau apa saja yang biasa njenengan pakai.
1.1 Buat database baru dengan nama “db_toko”
1.2 Buat tabel “categories“.
CREATE TABLE IF NOT EXISTS `categories` ( `cat_id` int(11) NOT NULL AUTO_INCREMENT, `cat_name` varchar(256) NOT NULL, `cat_description` text NOT NULL, `cat_created` datetime NOT NULL, `cat_modified` datetime NOT NULL, PRIMARY KEY (`cat_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Hasilnya:
INSERT INTO `categories` VALUES (1, 'Pakaian', 'Kategori pakaian, baju dll', '2018-08-01 01:02:03', '2018-08-01 02:02:03'), (2, 'Elektronik', 'HP, Tablet, Laptop, dll.', '2018-08-01 01:02:03', '2018-08-01 02:02:03'), (3, 'Buku Komputer', 'Kategori Buku Komputer', '2018-08-01 01:02:03', '2018-08-01 02:02:03'), (4, 'Film', 'Kategori film.', '2018-08-01 01:02:03', '2018-08-01 02:02:03'), (5, 'Buku Sejarah', 'Kategori Buku Sejarah', '2018-08-01 01:02:03', '2018-08-01 02:02:03'), (6, 'Olahraga', 'Kategori Olahraga.', '2018-08-01 01:02:03', '2018-08-01 02:02:03');
Hasilnya:
2. Buat struktur file PHP nya
Misalkan server anda ada di c:/xampp/htdocs/toko/
buat subfolder api dalam folder toko, struktur filenya menjadi seperti dibawah ini:
api/ db/ settings.ini.php Db.class.php Log.class.php categories/ list.php
Untuk file yang ada di folder db bisa didownload disini, edit file settings.ini.php sesuai konfigurasi server anda.
3. Membuat file API
isi file list.php seperti di bawah ini:
<?php header('Content-Type: application/json'); include dirname(dirname(__FILE__)).'/db/Db.class.php'; $db = new Db(); $limit = isset($_GET['limit']) ? (int) $_GET['limit'] : 0; $name = isset($_GET['name']) ? $_GET['name'] : ''; $sql_limit = ''; if (!empty($limit)) { $sql_limit = ' LIMIT 0,'.$limit; } $sql_name = ''; if (!empty($name)) { $sql_name = ' where cat_name LIKE \'%'.$name.'%\' '; } $cat_list = $db->query('select * from categories '.$sql_name.' '.$sql_limit); $arr = array(); $arr['info'] = 'success'; $arr['num'] = count($cat_list); $arr['result'] = $cat_list; echo json_encode($arr);
4. Mencoba memanggil API
Yang kita pakai untuk URL API adalah:
http://localhost/toko/api/categories/list.php
Parameter:
<strong>limit</strong> format integer
<strong>name</strong> format string
limit=10
jika ingin menampilkan 10 data
name=buku
jika ingin menampilkan nama kategori buku
Method yang dipakai adalah GET
Jadi secara lengkap URL api dan paramter untuk memanggil list kategori adalah:
http://localhost/toko/api/categories/list.php?limit=10&name=buku
Silahkan dibuka dibrowser dan lihatlah hasilnya.
url tanpa parameter http://localhost/toko/api/categories/list.php
hasilnya:
{"info":"success","num":6,"result":[{"cat_id":1,"cat_name":"Pakaian","cat_description":"Kategori pakaian, baju dll","cat_created":"2018-08-01 01:02:03","cat_modified":"2018-08-01 02:02:03"},{"cat_id":2,"cat_name":"Elektronik","cat_description":"HP, Tablet, Laptop, dll.","cat_created":"2018-08-01 01:02:03","cat_modified":"2018-08-01 02:02:03"},{"cat_id":3,"cat_name":"Buku Komputer","cat_description":"Kategori Buku Komputer","cat_created":"2018-08-01 01:02:03","cat_modified":"2018-08-01 02:02:03"},{"cat_id":4,"cat_name":"Film","cat_description":"Kategori film.","cat_created":"2018-08-01 01:02:03","cat_modified":"2018-08-01 02:02:03"},{"cat_id":5,"cat_name":"Buku Sejarah","cat_description":"Kategori Buku Sejarah","cat_created":"2018-08-01 01:02:03","cat_modified":"2018-08-01 02:02:03"},{"cat_id":6,"cat_name":"Olahraga","cat_description":"Kategori Olahraga.","cat_created":"2018-08-01 01:02:03","cat_modified":"2018-08-01 02:02:03"}]}
url dengan parameter http://localhost/toko/api/categories/list.php?limit=10&name=buku
hasilnya:
{"info":"success","num":2,"result":[{"cat_id":3,"cat_name":"Buku Komputer","cat_description":"Kategori Buku Komputer","cat_created":"2018-08-01 01:02:03","cat_modified":"2018-08-01 02:02:03"},{"cat_id":5,"cat_name":"Buku Sejarah","cat_description":"Kategori Buku Sejarah","cat_created":"2018-08-01 01:02:03","cat_modified":"2018-08-01 02:02:03"}]}
Kalau dijadikan array, hasilnya seperti dibawah ini:
Array ( [info] => success [num] => 2 [result] => Array ( [0] => Array ( [cat_id] => 3 [cat_name] => Buku Komputer [cat_description] => Kategori Buku Komputer [cat_created] => 2018-08-01 01:02:03 [cat_modified] => 2018-08-01 02:02:03 ) [1] => Array ( [cat_id] => 5 [cat_name] => Buku Sejarah [cat_description] => Kategori Buku Sejarah [cat_created] => 2018-08-01 01:02:03 [cat_modified] => 2018-08-01 02:02:03 ) ) )
5. Selesai
Kesimpulan
Begitu mudahnya membuat sendiri rest api berbasis PHP dan MySQL, tidak perlu framework yang aneh-aneh.
Kita hanya menggunakan class PDO MySQL untuk query ke database, jika anda merasa tidak perlu memakai class tersebut ya ga apa-apa, anda bisa bikin sendiri sesuai selera hehehe.
Tentunya anda bisa mengembangkan sendiri rest api diatas, karena contoh tersebut sangat sederhana yang penting bisa dipahami dengan mudah.
Jika ada error atau ada yang ingin ditanyakan silahkan tinggalkan komentar dibawah ini.
Index Artikel Rest API dengan PHP MySQL:
1. Persiapan – Cara membuat rest api dengan php mysql mudah dan cepat
2. View – Menampilkan hasil dari rest API PHP MySQL
3. Add – Menambahkan data menggunakan rest API create PHP MySQL
4. Edit – Mengedit data menggunakan rest API PHP MySQL
5. Delete – Menghapus data menggunakan rest API PHP MySQL
Gan, itu link download buat folder db nya mati. Kalau bisa semua skrip tutorial dimasukan aja.
Trus di akhir tutorial baru deh keseluruhan file codenya di kasih. Jadi kalaupun link download mati, pembaca masih bisa mengikuti tutorial dari code yang disertakan dihalaman ini.
Terima kasih, nice tutorial.
Terimakasih gan koreksinya, link sudah sy update
Sangat Bermanfaat
kalo bisa lengkap CRUD gan, ini kan list aja
Konsep untuk edit delete sama gan, insyaAllah kalau memahami konsep API ini bisa membuat sendiri CRUD lengkapnya 🙂
Gan, cara buat yang ada authority nya gmn gan?
auth nya bisa dibaca disini gan https://rasupe.com/php-curl-yang-biasa-dipakai/
misalnya tabel nya ada banyak berarti list.php di buat sendiri2 ya sesuai jumlah tabel?
satu aja gan, querynya saja yg dirubah
gan kalo tabel nya lebih dari satu giamana, atau buat list.php di masing2 tabel?
tidak perlu gan, cukup satu list.php tinggal main di query saja.
terima kasih, bermanfaat sekali
kalo menggunakan filter tanggal gimana?
$sql_name = ‘ where cat_name LIKE \’%’.$name.’%\’ ‘;
query tanggal
$sql_name = ‘ where date(tanggal) < \’%’.$tanggal.’%\’ ‘;
Simple dan udah difahami bagi saya sebagai pemula dibandingkan dengan artikel yang sama dan sangat bermanfaat. Jazakallahu khairan (جَزَاكَ اللَّهُ خَيْرً). Aamiin.
Jazakallahu khairan katsiran, sgt bermanfaat mas.
Kalo rest apinya menggunakan security token gmn y mas ? terimakasih
pakai auth token, detailnya bisa dibaca disini https://rasupe.com/php-curl-yang-biasa-dipakai/
Mantap om….
Mas, gimana kalo mau pake Validasi API Key untuk setiap mengakses api nya ?
Terimakasih
Bisa menggunakan auth atau user dan passwd pada CURL nya
detail curl ada disini https://rasupe.com/php-curl-yang-biasa-dipakai/
Kalo buat di android,api tools php apinya buat dipasang ke aplikasi gimna ya,contoh tools admin finder bikin apinya gimana? Supaya klo dipasang keaplikasi toolsnya bisa dipke dalam bentuk aplikasi
Mantap, mau nanya mas, kalo sewaktu cobain tapi muncul TypeError : Failed to Fetch, itu kenapa ya kira” mas?
kemungkinan url yang ditulis salah, krn tidak dapat diakses.
Buat API dengan php x mssql ada kah min? kalau ada share link nya dong hehe
Masyaallah saya terkagum-kagum dengan tutorial ini, karena memang sedang urgent mengunakan API REST
Gan saya muncul error seperti ini: Unhandled Exception. SQLSTATE[42S02]: Base table or view not found: 1146 Table ‘webgis-php.categories’ doesn’t exist You can find the error back in the log.
kira2 kenapa ya
berarti masih gagal koneksi ke tabelnya gan, coba dicek di setting.ini.php nya sudah benar atau belum.
kl sudah, sekalian dicek di phpmyadmin apa tabel categories nya sudah dibuat.
makasih…
untuk insert ada contohnya gan?
nanti kl sudah longgar insyaAllah sy buatkan tutorial API untuk create read update delete. trims
Wah, lagi nyari2 tentang REST API, ini kayaknya paling simple buat belajar.. Makasi om.. Lagi mau pake buat komunikasi data external di unreal engine ada plugin VA REST buat REST API..
Thank om.. Sukses bikin REST API di unreal engine 4.24.3 pakai xampp + phpmyadmin ngikutin tutorial ini doang
https://ibb.co/X2yBTjn
Mau nanya,, bisa ga gan,, mengambil data local ke server online dengan curl,, misal dari Hosting mengambil database lokal pakai curl php?
bisa kalau PC local punya ip address statis, jadi bisa diakses via IP.
kalau tidak punya ip statis harus pake tools tambahan, misalnya Ngrok, Localtunnel, Serveo, Teleconsole, Pagekite, dll.
tapi sy pernah coba memang kurang stabil, harus diakali pake script agar selalu accessable localhostnya.
Terimakasih atas tutorialnya, bermanfaat banget kebetulan lagi cari utk type data selain string (seperti int), sdh coba pakai yang simple json blm ketemu selalu diarahkan ke string ,pakai model ini langsung OKE.tanya apakah hanya model rest api di atas yang bisa menampilkan json array selain string, trims .
Untuk menampilkan isi json tinggal di echo $json, namun untuk menjadikan array hanya perlu menggunakan fungsi json_decode($json, true);
Kalau tidak ada “true” nya, nanti jadi array object.
$json = ‘{“info”:”success”,…..dst’;
$arr = json_decode($json, true);
echo ‘
‘;
kalau muncul pesan seperti ini, apa yang salah ya?
SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data
response JSON tidak valid gan.
bang ini password dbnya dimananya ya soalnya saya mendapat error seperti ini Unhandled Exception. SQLSTATE[HY000] [1045] Access denied for user ‘root’@’localhost’ (using password: YES) You can find the error back in the log.
kalau di localhost biasanya usernya root, passwordnya kosong.
kalau tetap tidak bisa, coba buat user dan password mysql via PHPMyAdmin.
Mantap min, saya langsung bisa CRUD gr2 cuman liat tutorial ini doang 😂
Cara akses api dr web lain gmn ya (lokal)
contohnya web yang seperti apa mas?
tinggal parsing outputnya (json/xml/txt/html) dll