Comment créer une API RESTful à l'aide de PHP et SQLite
Introduction :
Dans le développement actuel, l'API RESTful est devenue un style de conception d'interface de plus en plus populaire. Il utilise des verbes HTTP simples (GET, POST, DELETE, etc.) pour exploiter les ressources, facilitant ainsi l'interaction des données entre différentes applications. Dans cet article, nous apprendrons comment créer une API RESTful de base à l'aide de PHP et SQLite.
Première étape : installer PHP et SQLite
Avant de commencer, nous devons nous assurer que PHP et SQLite sont installés. S'il n'est pas encore installé, vous pouvez l'installer par :
Étape 2 : Créer une base de données
Après avoir installé PHP et SQLite, nous devons créer un fichier de base de données SQLite. Les bases de données peuvent être créées à l'aide de la ligne de commande ou des outils de gestion SQLite. Voici un exemple de création d'une base de données à l'aide de la ligne de commande :
$ sqlite3 mydatabase.db
Cela créera un fichier de base de données nommé mydatabase.db dans le répertoire courant.
Étape 3 : Créer une table de données
Ensuite, nous devons créer une table de données pour stocker les ressources exploitées par l'API. Ce qui suit est un exemple simple, nous créons une table nommée « produits » pour stocker les informations sur le produit :
$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);
Cela créera une table de données nommée « produits » dans la base de données, contenant trois colonnes : id, nom et prix.
Étape 4 : Créer une route API
Pour que l'API réponde aux différentes requêtes HTTP, nous devons créer un routeur pour répartir les requêtes. Voici un exemple simple :
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"; } }
Cette classe de routeur nous permet d'enregistrer différentes routes et d'appeler la fonction de rappel correspondante lorsque la requête arrive.
Étape 5 : Implémenter les opérations CRUD de l'API
Ensuite, nous implémenterons les opérations CRUD de l'API (créer, lire, mettre à jour et supprimer). Voici un exemple :
$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();
L'exemple de code ci-dessus implémente des opérations CRUD de base sur les ressources du produit. La requête GET renverra un tableau JSON de toutes les informations sur le produit, et la requête POST créera un nouveau produit et renverra l'ID du nouveau produit.
Résumé :
Grâce aux étapes ci-dessus, nous avons réussi à créer une API RESTful simple basée sur PHP et SQLite. Grâce aux opérations de routeur et de base de données, nous pouvons effectuer des opérations CRUD courantes. Bien entendu, ce n’est qu’un point de départ et nous pouvons le développer et l’optimiser en fonction des besoins réels. J'espère que cet article sera utile pour apprendre et pratiquer l'API RESTful.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!