Maison >développement back-end >tutoriel php >Création d'une API Mini Blog avec Lithe et Eloquent
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 automatiquement Eloquent 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 ressembler à ceci :
DB_CONNECTION_METHOD=eloquent DB_CONNECTION=mysql DB_HOST=localhost DB_NAME=lithe_eloquent DB_USERNAME=root DB_PASSWORD= DB_SHOULD_INITIATE=true
Puisque Lithe configure automatiquement Eloquent, l'étape suivante consiste à s'assurer que Eloquent ORM est installé. Si vous ne l'avez pas fait, exécutez la commande suivante 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 désormais correctement configurée pour notre API Mini Blog !
Maintenant, créons le modèle et la migration pour définir la table posts dans notre base de données.
Tout d'abord, créez le modèle Post avec la commande suivante :
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 sont maintenant créés. Configurons-les.
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 { // The table associated with the model protected $table = 'posts'; // Fields that can be filled via mass-assignment protected $fillable = ['title', 'content']; // Use timestamps for created_at and updated_at public $timestamps = true; }
Dans ce code, nous définissons les champs de titre et de contenu comme remplissables, ce qui signifie qu'ils peuvent être automatiquement renseignés lors de la création ou de la mise à jour d'une publication.
La migration générée sera située dans src/database/migrations/{timestamp}_create_posts_table.php. Modifiez la migration pour créer la structure de la table des publications :
use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Capsule\Manager as Capsule; return new class { public function up(): void { Capsule::schema()->create('posts', function (Blueprint $table) { $table->id(); // Creates the auto-incrementing id field $table->string('title'); // Creates the title field $table->text('content'); // Creates the content field $table->timestamps(); // Creates created_at and updated_at fields }); } public function down(): void { Capsule::schema()->dropIfExists('posts'); } };
Ici, nous créons la table des publications avec les champs identifiant, titre, contenu et les champs date-heure créé_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 :
php line migrate
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 create-project lithephp/lithephp mini-blog-api
Cela générera un fichier dans 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 :
DB_CONNECTION_METHOD=eloquent DB_CONNECTION=mysql DB_HOST=localhost DB_NAME=lithe_eloquent DB_USERNAME=root DB_PASSWORD= DB_SHOULD_INITIATE=true
Ici, nous avons cinq méthodes de base :
Maintenant, définissons les routes pour notre API de publication. Ouvrez le fichier src/App.php et ajoutez le code suivant :
composer require illuminate/database
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 :
La ligne $app->listen(); fait que Lithe « écoute » les demandes, c'est-à-dire qu'il attend les demandes entrantes 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 :
php line make:model Post
Ces routes connectent les méthodes de PostController aux URL de l'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 avons simplement apporté quelques ajustements aux variables d'environnement et créé 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!