Categories: PHP

Cara membuat rest api dengan php mysql mudah dan cepat (part 1)

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 tabelcategories“.

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

Bagikan
rasupe

View Comments

Recent Posts

Cara mengakses gmail dengan php imap

Bismillaahirrohmaanirrohiim... Saat ini teknologi sudah berkembang cepat, ada kalanya kita ingin diberikan informasi secara cepat…

3 months ago

Error posible dead lock pada cyberpanel litespeed mysql

Bismillaahirrohmaanirrohiim... Jika web diakses oleh banyak orang, khususnya yang berbasis wordpress, maka secara normal proses…

4 months ago

Aplikasi Sistem Monitoring Sekolah berbasis WEB

Bismillaahirrohmaanirrohiim... Saat ini, sekolah baik SD, SMP, ataupun SMA tentunya ingin dapat melihat dan memonitor…

5 months ago

Membuat program pendataan pilkada DPRD tingkat 2

Bismillaahirrohmaanirrohiim... Pada artikel kali ini saya akan berbagi informasi tentang program pendataan pendukung calon legislatif…

5 months ago

Cara Screenshot di Chrome full halaman

Bismillaahirrohmaanirrohiim... Saat kita melakukan screenshot di browser chrome, pada windows 11 menyediakan fungsi yang bagus…

5 months ago

Menonaktifkan fitur translate di website

Bismillaahirrohmaanirrohiim... Untuk website yang ingin tidak muncul popup translate dari browser, bisa dicoba kode di…

7 months ago