REST API di PHP
Ada pendekatan khusus, yang menstandarisasi API untuk kenyamanan bersama baik bagi pengembang API, maupun penggunanya.
Salah satu pendekatan tersebut adalah REST API. Dasar pemikirannya adalah bahwa untuk operasi CRUD perlu menggunakan berbagai metode protokol HTTP.
Untuk mengambil data - metode GET, untuk membuat data - metode POST, untuk mengubah data - metode PUT, untuk menghapus data - metode DELETE.
Sebagai contoh mari kita lihat suatu API, yang memanipulasi pengguna. Mari kita lihat, bagaimana URL untuk berbagai tindakan akan terlihat.
Mendapatkan semua pengguna:
GET http://api.loc/users/
Mendapatkan satu pengguna berdasarkan id-nya:
GET http://api.loc/user/1/
Membuat pengguna:
POST http://api.loc/user/
Mengubah pengguna berdasarkan id-nya:
PUT http://api.loc/user/1/
Menghapus pengguna berdasarkan id-nya:
DELETE http://api.loc/user/1/
Mari kita lihat bagaimana REST API diimplementasikan di PHP. Ada sedikit masalah di sini. Masalahnya adalah, baik PHP maupun CURL hanya mendukung metode GET dan POST:
<?php
$method = $_SERVER['REQUEST_METHOD'];
var_dump($method); // hanya GET dan POST
?>
Oleh karena itu, untuk mengimplementasikan REST API,
kita harus menggunakan trik. Intinya adalah,
dalam kenyataannya data akan ditransfer
hanya dengan metode GET dan POST, tetapi kita akan
meniru kerja metode lainnya
dengan menggunakan header HTTP kustom.
Sebut saja, misalnya, HTTP-X-HTTP-METHOD.
Maka kita bisa mendapatkan isi header tersebut dengan cara berikut:
<?php
$method = $_SERVER['HTTP-X-HTTP-METHOD'];
?>
Sekarang kita bisa menulis implementasi API:
<?php
$method = $_SERVER['HTTP-X-HTTP-METHOD'];
switch ($method) {
case 'GET':
// ...
break;
case 'POST':
// ...
break;
case 'PUT':
// ...
break;
case 'DELETE':
// ...
break;
}
?>
Implementasikan REST API untuk produk toko online.
Uji kerja API yang telah diimplementasikan dengan menggunakan library CURL.