REST API dalam PHP
Terdapat pendekatan khas, yang menyeragamkan API untuk kemudahan bersama kedua-dua pembangun API, dan penggunanya.
Salah satu pendekatan tersebut ialah REST API. Asasnya terletak pada idea bahawa untuk operasi CRUD, perlu menggunakan pelbagai kaedah protokol HTTP.
Untuk mendapatkan data - kaedah GET, untuk mencipta data - kaedah POST, untuk mengubah data - kaedah PUT, untuk memadam data - kaedah DELETE.
Sebagai contoh, mari kita lihat suatu API, yang memanipulasi pengguna. Mari kita lihat, bagaimana URL untuk pelbagai tindakan akan kelihatan.
Dapatkan semua pengguna:
GET http://api.loc/users/
Dapatkan satu pengguna mengikuti idnya:
GET http://api.loc/user/1/
Cipta pengguna:
POST http://api.loc/user/
Ubah pengguna mengikut idnya:
PUT http://api.loc/user/1/
Padam pengguna mengikut idnya:
DELETE http://api.loc/user/1/
Mari kita lihat, bagaimana REST API dilaksanakan dalam PHP. Terdapat sedikit masalah di sini. Masalahnya ialah, kedua-dua PHP dan CURL hanya menyokong kaedah GET dan POST:
<?php
$method = $_SERVER['REQUEST_METHOD'];
var_dump($method); // hanya GET dan POST
?>
Oleh itu, untuk melaksanakan REST API, kita terpaksa
menggunakan helah. Intipatinya ialah,
dalam realiti data akan dihantar
hanya menggunakan kaedah GET dan POST, tetapi kita akan
mengimitasi kerja kaedah lain
menggunakan pengepala HTTP khas.
Kita namakannya, sebagai contoh, HTTP-X-HTTP-METHOD.
Maka kita boleh mendapatkan kandungan pengepala ini seperti berikut:
<?php
$method = $_SERVER['HTTP-X-HTTP-METHOD'];
?>
Sekarang kita boleh menulis pelaksanaan API:
<?php
$method = $_SERVER['HTTP-X-HTTP-METHOD'];
switch ($method) {
case 'GET':
// ...
break;
case 'POST':
// ...
break;
case 'PUT':
// ...
break;
case 'DELETE':
// ...
break;
}
?>
Laksanakan REST API untuk produk kedai dalam talian.
Uji kerja API yang telah dilaksanakan menggunakan pustaka CURL.