Latar Belakang Belakangan ini, REST API banyak dibutuhkan, seiring populernya pemrograman Smartphone yang menggunakan data dari server. Perhatikan arsitektur berikut: Dengan arsitektur di atas, aplikasi mobile (misalnya Android atau iPhone) bisa menggunakan fungsi-fungsi yang ada di Web Server, dan mu...

Membangun REST API dengan PHP

Latar Belakang

Belakangan ini, REST API banyak dibutuhkan, seiring populernya pemrograman Smartphone yang menggunakan data dari server. Perhatikan arsitektur berikut:

Dengan arsitektur di atas, aplikasi mobile (misalnya Android atau iPhone) bisa menggunakan fungsi-fungsi yang ada di Web Server, dan mungkin mengambil atau menyimpan data ke Database Server.

 

Target Pembaca

Pembaca adalah server developer atau web programmer yang telah terbiasa dengan bahasa pemrograman PHP. 

 

Framework

Saya pernah mencoba menulis REST API dengan framework semacam CodeIgniter, tetapi kemudian saya menyimpulkan bahwa menggunakan framework sebesar CodeIgniter justru adalah pilihan yang lebay. Banyak yang mubadzir.

Pernah pula saya menulis sendiri REST API sederhana from scratch. Tapi kemudian justru saya menjadi tidak agile. Saya harus menulis sendiri file .htaccess agar REST berjalan sesuai standar. Ketika ada penambahan fitur, saya harus memikirkan algoritmanya kembali dan kemudian mengimplementasikannya. Implementasi baru biasanya memperkenalkan bug-bug baru.

Yang kita butuhkan sebenarnya hanyalah sebuah framework yang ringan, sederhana tetapi telah cukup teruji. 

Maka kemudian saya memilih Flight PHP.

 

Yang Akan Kita Buat

Kita akan membuat sebuah API sederhana untuk tahap awal ini, yaitu login.

 

Persiapan

Instalasi Flight PHP.

  1. Install Apache bersama PHP, akan lebih mudah jika Anda sudah memiliki bundle Apache MySQL dan PHP. XAMPP akan membantu Anda.
  2. Buat sebuah direktori di web server kita (di Apache, ini berarti membuat direktori di dalam htdocs). Misalnya kita beri nama API.
  3. Download Flight PHP.
  4. Ikuti langkah-langkah instalasi Flight PHP.

Sampai tahap ini, pastikan Anda memiliki struktur direktori seperti ini:

htdocs

  • API
    • flight (direktori berisi distribusi Flight PHP)
      • autoload.php
      • core
      • Engine.php
      • Flight.php
      • net
      • template
      • util
    • index.php
    • api.php

 

File index.php dan api.php adalah buatan kita.

 

index.php

Kita gunakan index.php sebagai routing. Script inilah yang akan berisi routing dan pemetaan fungsi-fungsi yang tersedia untuk user.

<?php

require 'flight/Flight.php';
require 'api.php';

Flight::route('POST /login', 'login');

Flight::start();

?>

Kode di atas berarti kita akan memetakan URL http://<host>/API/login dengan fungsi login() yang ada di dalam api.php. URI ini hanya menerima HTTP request dengan method POST.

 

api.php

Di dalam api.php harus ada fungsi login(). Saya implementasikan fungsi sederhana sebagai contoh penggunaan saja. Di sini saya menunjukkan bahwa harus dilakukan validasi sebelum melakukan logic-logic berikutnya. Terakhir, kita berikan response berformat JSON. 

<?php

function login() {
// validasi $missingParameters = array(); if (!isset($_POST['username'])) { array_push($missingParameters, 'username'); } if (!isset($_POST['password'])) { array_push($missingParameters, 'password'); } reportMissingParameters($missingParameters);
// logic $username = $_POST['username']; $password = $_POST['password'];
// response Flight::json(array( "code"=>0, "message"=>"Succeed", "data"=>array( "username"=>$username, "realname"=>"Amri Shodiq" ) )); } function reportMissingParameters($missingParameters) { $parameters = implode(", ", $missingParameters); Flight::json(array( "code"=>1, "message"=>"Missing parameter: ".$parameters.".", "data"=>null )); exit(); } ?>

 

Sampai tahap ini, API sudah bisa di test. Ada bisa mengetest REST API Anda dengan Postman (jika menggunakan Google Chrome).

 

Test

Dengan Postman, buat request ke http://<host-anda-misalnya-localhost>/<direktori-anda-misalnya-API>/login. Ubah method nya dari GET menjadi POST. Kemudian, dengan tab form-data tambahkan parameter username. Isi kolom value. Kemudian tekan tombol Send.

Bagaimana response nya?

Lalu bagaimana jika Anda tambahkan parameter password, kemudian isi kolom value. Kemudian tekan tombol Send.

Bagaimana response nya?

 

Kesimpulan

Bagian ini hanya menunjukkan dasar penggunaan Flight PHP untuk membangun REST API dengan cepat (target: kurang dari 60 menit). 

Nantikan tutorial bagian berikutnya.


About Author

Amri Shodiq


Comment & Discussions

  • Imran Nababan
    Hello Tom Tom,
    itu routing nya belum benar berarti, sudah enable .htaccess ga di Apache server nya?

  • Donny Mardiana
    Mas Amri boleh minta no HP nya ? saya sdh punya API tiket pesawat, tapi gak bs ngerjakan

  • Deni Rachmadi
    mas amri pertama-tama makasih sdh nulis tutorial seperti ini. sy dah ikuti tutorial dan sdh coba di postman.
    dgn 2 parameter = username dan password beserta valuenya. hasil yg

    sy dapat seperti ini :
    {
    "code": 1,
    "message": "Missing parameter: username,password.",
    "data": null
    }

    apakah hasil ini yg diharapkan. atau di kode saya ada yg salah ? makasih sebelumnya

  • Happy Agung
    Om Amir, saya mau gunakan restful api ini untuk ambil content dari website joomla dan menampilkan pada aplikasi mobile.
    apakah bisa om dan seperti apa scriptnya

  • bang asli aku masiih bingung dah, ini gimana. padhal harus segera bisa bikin tutorial yang lebih dong bang hehehe. kaya tutorial framwork yang lain itu naaa hehe mkasiih

  • Please LOGIN before if you want to give the comment.