Maison > développement back-end > tutoriel php > Version de l'API dans Laravel 11

Version de l'API dans Laravel 11

Emily Anne Brown
Libérer: 2025-03-06 02:23:12
original
371 Les gens l'ont consulté

Avec la libération de Laravel 11, le squelette d'application a été réduit pour supprimer des fichiers supplémentaires qui ne sont pas nécessaires sur chaque projet. Une partie de cette modification a supprimé tous les fournisseurs de services du code source d'application sauf le AppServiceProvider.

Une autre partie du squelette d'application mise à jour consiste à supprimer les routes d'API dans l'installation par défaut. Supposons que vous prévoyez d'ajouter une API à votre application ou d'écrire exclusivement une API avec Laravel. Dans ce cas, vous pouvez configurer le groupe de middleware api et les routes avec une commande artisanale:

<!-- Syntax highlighted by torchlight.dev -->php artisan install:api
Copier après la connexion
Copier après la connexion

Le install:api configure le fichier d'itinéraire api.php (et le configure), une migration de base de données pour les jetons d'accès personnels et un fichier de configuration Sanctum. Si vous n'avez pas besoin de verser votre API, c'est tout ce que vous devez faire.

#version de votre API dans des fichiers séparés

Une approche commune pour écrire des API versionnées dans Laravel sépare les itinéraires en différents fichiers. Cela simplifie les frais généraux du raisonnement sur une version API spécifique et garde les choses bien rangées. Dans Laravel 10 ou antérieure, une approche commune consiste à ajouter des fichiers d'itinéraire supplémentaires pour chaque version API au RouteServiceProvider:

<!-- Syntax highlighted by torchlight.dev -->$this->routes(function () {
    Route::middleware('api')
        ->prefix('api')
        ->group(base_path('routes/api.php'));

    Route::middleware('api')
        ->prefix('api/v1')
        ->group(base_path('routes/api_v1.php'));

    Route::middleware('api')
        ->prefix('api/v2')
        ->group(base_path('routes/api_v2.php'));

    Route::middleware('web')
        ->group(base_path('routes/web.php'));
});
Copier après la connexion

Dans l'exemple ci-dessus, le routes/api.php offre généralement un point de terminaison /user pour Laravel Sanctum, et le reste des itinéraires API est niché dans la version appropriée.

#version de votre API dans Laravel 11

Avec la route Bootstrap en quittant le RouteServiceProvider et dans bootstrap/app.php, voici quelques façons de version votre API.

Tout d'abord, générons quelques fichiers pour démontrer la configuration du routage:

<!-- Syntax highlighted by torchlight.dev -->touch routes/api_v1.php
touch routes/api_v2.php

php artisan make:controller --api Api/V1/PostsController
php artisan make:controller --api Api/V2/PostsController
Copier après la connexion

Utilisez la convention et l'emplacement du nom de fichier qui vous convient.

Ensuite, ouvrez le fichier routes/api.php et ajoutez les lignes suivantes au bas du fichier:

<!-- Syntax highlighted by torchlight.dev -->Route::prefix('v1')->group(base_path('routes/api_v1.php'));
Route::prefix('v2')->group(base_path('routes/api_v2.php'));
Copier après la connexion

Le code ci-dessus étant dans api.php signifie que nous travaillons déjà dans le préfixe d'itinéraire api et utilisons le groupe de middleware api.

Ensuite, ajoutons les itinéraires d'exemples pour chaque version API respective afin que nous puissions visualiser la liste des routes pour chaque version.

Voici le fichier api_v1.php:

<!-- Syntax highlighted by torchlight.dev --><?php

use App\Http\Controllers\Api\V1\PostsController;

Route::apiResource('posts', PostsController::class);
Copier après la connexion

et le fichier api_v2.php:

<!-- Syntax highlighted by torchlight.dev --><?php

use App\Http\Controllers\Api\V2\PostsController;

Route::apiResource('posts', PostsController::class);
Copier après la connexion

avec nos fichiers d'itinéraire définis, exécutant route:list, nous pouvons voir les itinéraires versés!

Pro Astuce: Vous pouvez isoler les itinéraires versés à l'aide du drapeau --path, ce qui facilite la concentration sur une version API spécifique:

<!-- Syntax highlighted by torchlight.dev -->php artisan route:list --path=api/v1
php artisan route:list --path=api/v2
Copier après la connexion

Découvrez à quoi il ressemble si vous sortez simplement des routes pour api/v2:

#Defining Versiond Routes in the App Bootstrap File

Une autre approche que j'ai vue est de définir des routes API supplémentaires dans le fichier bootstrap/app.php à l'aide de l'argument then:, qui accepte un Closure:

<!-- Syntax highlighted by torchlight.dev -->php artisan install:api
Copier après la connexion
Copier après la connexion

Je préfère ajouter des fichiers d'itinéraire supplémentaires directement à routes/api.php, mais c'est une autre approche qui fonctionnerait. Lors de la définition des itinéraires dans le fichier bootstrap, ces groupes ne sont pas configurés pour utiliser le groupe api middleware. Assurez-vous d'inclure le groupe de middleware api avec ces itinéraires!

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal