Maison >développement back-end >tutoriel php >Création d'une API Mini Blog avec Lithe et Eloquent
Dans ce tutoriel, nous allons créer une API Mini Blog en utilisant Lithe, un framework PHP simple et flexible, et ORM éloquent, qui facilite l'interaction avec la base de données. Lithe configure déjà Eloquent automatiquement, le travail que nous devons donc faire est simple : ajuster les variables d'environnement et créer le modèle et la migration de nos données.
Suivons un guide simple étape par étape pour créer cette API efficacement et sans complications.
La première étape consiste à installer Lithe dans votre projet. Si vous ne l'avez pas encore fait, exécutez simplement la commande suivante dans le terminal :
composer create-project lithephp/lithephp mini-blog-api
Cette commande crée un nouveau projet en utilisant Lithe. Lithe configure déjà Eloquent automatiquement pour vous, mais nous devons ajuster certains paramètres dans le fichier .env pour nous connecter à la base de données.
Maintenant, configurons la base de données. Ouvrez le fichier .env à la racine de votre projet et modifiez les paramètres de la base de données. Pour utiliser Eloquent ORM avec MySQL, les paramètres doivent être comme ceci :
DB_CONNECTION_METHOD=eloquent DB_CONNECTION=mysql DB_HOST=localhost DB_NAME=lithe_eloquent DB_USERNAME=root DB_PASSWORD= DB_SHOULD_INITIATE=true
Maintenant, puisque Lithe configure déjà automatiquement Eloquent, l'étape suivante consiste à s'assurer que Eloquent ORM est installé. Si vous ne l'avez pas déjà fait, exécutez la commande ci-dessous pour installer Eloquent ORM :
composer require illuminate/database
Après l'installation, Lithe sera prêt à utiliser Eloquent ORM et à interagir avec la base de données. Avec cela, la base de données est correctement configurée pour notre Mini Blog!
APIMaintenant, créons le modèle et la migration qui définiront la table posts dans notre base de données.
Tout d'abord, créez le modèle de publication avec la commande :
php line make:model Post
Ensuite, créez la migration pour la table des publications :
php line make:migration create_posts_table
Le modèle et la migration ont déjà été créés, configurons-les maintenant.
Le modèle Post se trouve dans src/models/Post.php. Modifiez le fichier comme ceci :
namespace App\Models; use Illuminate\Database\Eloquent\Model; class Post extends Model { // A tabela associada ao modelo protected $table = 'posts'; // Campos que podem ser preenchidos via mass-assignment protected $fillable = ['title', 'content']; // Usar timestamps para created_at e updated_at public $timestamps = true; }
Dans ce code, nous définissons les champs de titre et de contenu comme étant remplissables, ce qui signifie qu'ils peuvent être remplis automatiquement lorsque nous créons ou mettons à jour une publication.
La migration générée sera dans src/database/migrations/{timestamp}_create_posts_table.php. Modifiez la migration pour créer la structure de la table des publications :
composer create-project lithephp/lithephp mini-blog-api
Ici, nous créons la table des publications avec les champs identifiant, titre, contenu et les champs de date et d'heure créés_at et mis à jour_at.
Une fois la migration et le modèle prêts, exécutons la migration pour créer la table des publications dans la base de données. Exécutez la commande suivante :
DB_CONNECTION_METHOD=eloquent DB_CONNECTION=mysql DB_HOST=localhost DB_NAME=lithe_eloquent DB_USERNAME=root DB_PASSWORD= DB_SHOULD_INITIATE=true
Cette commande créera la table des publications dans la base de données avec les champs que nous avons définis lors de la migration.
Maintenant, créons un contrôleur pour gérer les publications de l'API. Le responsable du traitement sera responsable du traitement des requêtes HTTP et du renvoi des données de manière organisée.
Pour créer le contrôleur, exécutez :
composer require illuminate/database
Cela générera un fichier sur src/http/Controllers/PostController.php. Modifiez ce fichier pour inclure les méthodes CRUD (créer, lire, mettre à jour et supprimer) pour les publications.
Voici un exemple de ce à quoi pourrait ressembler le PostController :
php line make:model Post
Ici, nous avons cinq méthodes de base :
Maintenant, définissons les routes pour notre API de publications. Ouvrez le fichier src/App.php et ajoutez le code suivant :
php line make:migration create_posts_table
Le code ci-dessus crée une instance de l'application Lithe. La ligne $app->set('routes', __DIR__ . '/routes'); indique à Lithe où trouver les fichiers de route. Lithe chargera automatiquement tous les fichiers dans le dossier src/routes. Chaque fichier de route sera mappé à l'URL en fonction de son nom. Par exemple :
Le $app->listen(); fait que Lithe commence à « écouter » les demandes, c'est-à-dire qu'il attend les demandes et les dirige vers les itinéraires définis.
Maintenant, créez un fichier appelé posts.php dans le dossier src/routes/posts pour représenter la route /posts et ajoutez le code suivant :
namespace App\Models; use Illuminate\Database\Eloquent\Model; class Post extends Model { // A tabela associada ao modelo protected $table = 'posts'; // Campos que podem ser preenchidos via mass-assignment protected $fillable = ['title', 'content']; // Usar timestamps para created_at e updated_at public $timestamps = true; }
Ces routes connectent les méthodes PostController aux URL d'API.
Maintenant que tout est configuré, vous pouvez tester votre API avec des outils comme Postman ou Insomnia. Voici les points de terminaison que vous pouvez tester :
Maintenant, vous venez de créer une API Mini Blog avec Lithe et Eloquent ORM ! Lithe a automatiquement configuré Eloquent pour vous, et nous venons d'apporter quelques modifications aux variables d'environnement et de créer les modèles et contrôleurs nécessaires. Vous disposez désormais d'une API RESTful complète pour gérer les articles de blog.
Pour plus d'informations et de détails sur l'utilisation de Lithe et Eloquent ORM, visitez la documentation officielle de Lithe ici : Documentation Lithe.
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!