Laravel 11 est un framework PHP robuste et flexible, parfaitement adapté pour développer des APIs RESTful. Dans cet article, nous allons démontrer comment concevoir une application CRUD (Create, Read, Update, Delete) en respectant les meilleures pratiques avec Laravel 11. Suivez ce guide étape par étape afin de vous assurer que votre API est bien structurée et performante.
Création d’une API RESTful CRUD avec Laravel 11
Étape 1 : Installation et configuration de la base de données
Installer Laravel 11
Ouvrez le terminal et exécutez la commande :
composer create-project laravel/laravel apicrud
Configurer la base de données
Dans le fichier .env, saisissez les informations d’identification de la base de données :
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=nom_do_banco
DB_USERNAME=usuario
DB_PASSWORD=senha
Étape 2 : Création des modèles, des Requests, des Resources, des Controllers et des Routes
Créer le modèle et la migration
Dans le terminal, lancez :
php artisan make:model Post -m
Générer une Request de validation
php artisan make:request StorePostRequest
Créer la Resource
php artisan make:resource PostResource
Générer le Controller
php artisan make:controller Api/PostController --model=Post
Étape 3 : Configuration de la migration
Dans le fichier database/migrations/create_posts_table.php, configurez la table :
public function up()
{
Schema::create('posts', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->text('content');
$table->timestamps();
});
}
public function down()
{
Schema::dropIfExists('posts');
}
Étape 4 : Modèle Post
Dans le fichier app/Models/Post.php, définissez le modèle :
namespace AppModels;
use IlluminateDatabaseEloquentFactoriesHasFactory;
use IlluminateDatabaseEloquentModel;
class Post extends Model
{
use HasFactory;
protected $fillable = ['title', 'content'];}
Étape 5 : Request de validation
Dans le fichier app/Http/Requests/StorePostRequest.php, définissez les règles de validation :
namespace AppHttpRequests;
use IlluminateFoundationHttpFormRequest;
class StorePostRequest extends FormRequest
{
public function authorize()
{
return true;
}
public function rules()
{
return [
'title' => ['required', 'max:70'],
'content' => ['required']
];
}
}
Étape 6 : Resource Post
Dans le fichier app/Http/Resources/PostResource.php, définissez la structure de la ressource :
namespace AppHttpResources;
use IlluminateHttpResourcesJsonJsonResource;
class PostResource extends JsonResource
{
public function toArray($request)
{
return [
'id' => $this->id,
'title' => $this->title,
'content' => $this->content,
'created_at' => $this->created_at,
];
}
}
Étape 7 : Contrôleur Post
Dans le fichier app/Http/Controllers/Api/PostController.php, définissez les méthodes CRUD :
namespace AppHttpControllersApi;
use AppHttpControllersController;
use AppModelsPost;
use IlluminateHttpRequest;
use AppHttpRequestsStorePostRequest;
use AppHttpResourcesPostResource;
class PostController extends Controller
{
public function index()
{
$posts = Post::all();
return PostResource::collection($posts);
}
public function store(StorePostRequest $request)
{
$post = Post::create($request->validated());
return new PostResource($post);
}
public function update(StorePostRequest $request, Post $post)
{
$post->update($request->validated());
return new PostResource($post);
}
public function destroy(Post $post)
{
$post->delete();
return response(null, 204);
}
}
Étape 8 : Configurer les Routes
Dans le fichier routes/api.php, définissez les routes de l’API :
use AppHttpControllersApiPostController;
use IlluminateHttpRequest;
use IlluminateSupportFacadesRoute;
Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
return $request->user();
});
Route::apiResource('posts', PostController::class)->except([
'create', 'show', 'edit'
]);
Étape 9 : Lancer l’application Laravel
Lancez le serveur :
php artisan serve
Vidéo
Cliquez ici pour regarder la vidéo de ce tutoriel
Conclusion en utilisant Laravel
En suivant ces étapes, vous disposerez d’une application CRUD RESTful utilisant Laravel 11, conforme aux meilleures pratiques. Assurez-vous de tester toutes les endpoints et de valider les réponses de l’API avec des outils tels que Postman.
Et n’oubliez pas de profiter de l’offre limitée pour vous inscrire à mon cours de développement web pour débutants ! En savoir plus en cliquant ici !




