Rumah > Artikel > pembangunan bahagian belakang > Cara membuat API RESTful menggunakan PHP dan SQLite
Cara mencipta API RESTful menggunakan PHP dan SQLite
Pengenalan:
Dalam perkembangan hari ini, RESTful API telah menjadi gaya reka bentuk antara muka yang semakin popular. Ia menggunakan kata kerja HTTP mudah (GET, POST, DELETE, dll.) untuk mengendalikan sumber, menjadikannya mudah untuk interaksi data antara aplikasi yang berbeza. Dalam artikel ini, kita akan belajar cara mencipta API RESTful asas menggunakan PHP dan SQLite.
Langkah Pertama: Pasang PHP dan SQLite
Sebelum kita mula, kita perlu memastikan PHP dan SQLite dipasang. Jika ia belum dipasang, anda boleh memasangnya dengan:
Langkah 2: Buat pangkalan data
Selepas memasang PHP dan SQLite, kita perlu mencipta fail pangkalan data SQLite. Pangkalan data boleh dibuat menggunakan baris arahan atau alat pengurusan SQLite. Berikut ialah contoh mencipta pangkalan data menggunakan baris arahan:
$ sqlite3 mydatabase.db
Ini akan mencipta fail pangkalan data bernama mydatabase.db dalam direktori semasa.
Langkah 3: Buat jadual data
Seterusnya, kita perlu mencipta jadual data untuk menyimpan sumber yang dikendalikan oleh API. Berikut ialah contoh mudah, kami mencipta jadual bernama "produk" untuk menyimpan maklumat produk:
$database = new SQLite3('mydatabase.db'); $table = "CREATE TABLE IF NOT EXISTS products ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, price REAL NOT NULL )"; $database->exec($table);
Ini akan mencipta jadual data bernama "produk" dalam pangkalan data, yang mengandungi tiga lajur: id, nama dan harga .
Langkah 4: Buat Laluan API
Untuk membolehkan API bertindak balas kepada permintaan HTTP yang berbeza, kami perlu mencipta penghala untuk menghantar permintaan. Berikut ialah contoh mudah:
class Router { private $routes = []; public function register($method, $path, $callback) { $this->routes[] = [ 'method' => $method, 'path' => $path, 'callback' => $callback ]; } public function handleRequest() { $method = $_SERVER['REQUEST_METHOD']; $path = $_SERVER['PATH_INFO']; foreach ($this->routes as $route) { if ($route['method'] == $method && $route['path'] == $path) { call_user_func($route['callback']); return; } } http_response_code(404); echo "Not Found"; } }
Kelas penghala ini membolehkan kami mendaftar laluan berbeza dan memanggil fungsi panggil balik yang sepadan apabila permintaan tiba.
Langkah 5: Laksanakan operasi CRUD API
Seterusnya, kami akan melaksanakan operasi CRUD API (buat, baca, kemas kini dan padam). Berikut ialah contoh:
$router = new Router(); $router->register('GET', '/products', function() { $database = new SQLite3('mydatabase.db'); $results = $database->query("SELECT * FROM products"); $data = []; while ($row = $results->fetchArray()) { $data[] = [ 'id' => $row['id'], 'name' => $row['name'], 'price' => $row['price'] ]; } echo json_encode($data); }); $router->register('POST', '/products', function() { $data = json_decode(file_get_contents('php://input'), true); $name = $data['name']; $price = $data['price']; $database = new SQLite3('mydatabase.db'); $database->exec("INSERT INTO products (name, price) VALUES ('$name', $price)"); $lastInsertId = $database->lastInsertRowID(); echo json_encode(['id' => $lastInsertId]); }); // 同样的方式,我们可以实现PUT和DELETE方法来更新和删除产品信息。 $router->handleRequest();
Kod contoh di atas melaksanakan operasi CRUD asas pada sumber produk. Permintaan GET akan mengembalikan tatasusunan JSON bagi semua maklumat produk dan permintaan POST akan mencipta produk baharu dan mengembalikan ID produk baharu.
Ringkasan:
Melalui langkah di atas, kami telah berjaya mencipta API RESTful mudah berdasarkan PHP dan SQLite. Melalui operasi penghala dan pangkalan data, kami boleh melakukan operasi CRUD biasa. Sudah tentu, ini hanyalah titik permulaan dan kami boleh terus membangunkan dan mengoptimumkannya berdasarkan keperluan sebenar. Saya harap artikel ini berguna untuk mempelajari dan mengamalkan API RESTful.
Atas ialah kandungan terperinci Cara membuat API RESTful menggunakan PHP dan SQLite. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!